#include "StaticFFT_9.h"
#include "FFTCommon.h"
#include <xmmintrin.h>
#ifdef __AVX__
#include <immintrin.h>
#endif

#ifndef __AVX__
//SSE
void StaticFFT_7()
{
	float Re0, Re1, Re2, Re3;
	float Im0, Im1, Im2, Im3;
	float RA, IA;
	float RF1, IF1, RF2, IF2;
	float R, I;
	__m128 mRF1, mIF1, mRF2, mIF2;
	__m128 mR, mI;
	R = SFRe[126] + SFRe[127];
	I = SFIm[126] + SFIm[127];
	SFRe[127] = SFRe[126] - SFRe[127];
	SFIm[127] = SFIm[126] - SFIm[127];
	SFRe[126] = R;
	SFIm[126] = I;
	R = SFRe[124] + SFRe[125];
	I = SFIm[124] + SFIm[125];
	SFRe[125] = SFRe[124] - SFRe[125];
	SFIm[125] = SFIm[124] - SFIm[125];
	SFRe[124] = R;
	SFIm[124] = I;
	Re0 = SFRe[120]; Im0 = SFIm[120];
	Re1 = SFRe[121]; Im1 = SFIm[121];
	Re2 = SFRe[122]; Im2 = SFIm[122];
	Re3 = SFRe[123]; Im3 = SFIm[123];
	SFRe[120] = Re0 + Re1; SFIm[120] = Im0 + Im1;
	SFRe[121] = Re0 - Re1; SFIm[121] = Im0 - Im1;
	SFRe[122] = Re2 + Re3; SFIm[122] = Im2 + Im3;
	SFRe[123] = Im2 - Im3; SFIm[123] = Re3 - Re2;
	RA = SFRe[120] + SFRe[122];
	IA = SFIm[120] + SFIm[122];
	SFRe[122] = SFRe[120] - SFRe[122];
	SFIm[122] = SFIm[120] - SFIm[122];
	SFRe[120] = RA;
	SFIm[120] = IA;
	RA = SFRe[121] + SFRe[123];
	IA = SFIm[121] + SFIm[123];
	SFRe[123] = SFRe[121] - SFRe[123];
	SFIm[123] = SFIm[121] - SFIm[123];
	SFRe[121] = RA;
	SFIm[121] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[124];
	I = SFIm[124];
	SFRe[124] = R * RF1 - I * IF1;
	SFIm[124] = R * IF1 + I * RF1;
	R = SFRe[126];
	I = SFIm[126];
	SFRe[126] = R * RF2 - I * IF2;
	SFIm[126] = R * IF2 + I * RF2;
	R = SFRe[126];
	I = SFIm[126];
	SFRe[126] = SFIm[124] - I;
	SFIm[126] = R - SFRe[124];
	SFRe[124] += R;
	SFIm[124] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[125];
	I = SFIm[125];
	SFRe[125] = R * RF1 - I * IF1;
	SFIm[125] = R * IF1 + I * RF1;
	R = SFRe[127];
	I = SFIm[127];
	SFRe[127] = R * RF2 - I * IF2;
	SFIm[127] = R * IF2 + I * RF2;
	R = SFRe[127];
	I = SFIm[127];
	SFRe[127] = SFIm[125] - I;
	SFIm[127] = R - SFRe[125];
	SFRe[125] += R;
	SFIm[125] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 120), _mm_load_ps(SFRe + 124));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 120), _mm_load_ps(SFIm + 124));
	_mm_store_ps(SFRe + 124, _mm_sub_ps(_mm_load_ps(SFRe + 120), _mm_load_ps(SFRe + 124)));
	_mm_store_ps(SFIm + 124, _mm_sub_ps(_mm_load_ps(SFIm + 120), _mm_load_ps(SFIm + 124)));
	_mm_store_ps(SFRe + 120, mR);
	_mm_store_ps(SFIm + 120, mI);
	R = SFRe[118] + SFRe[119];
	I = SFIm[118] + SFIm[119];
	SFRe[119] = SFRe[118] - SFRe[119];
	SFIm[119] = SFIm[118] - SFIm[119];
	SFRe[118] = R;
	SFIm[118] = I;
	R = SFRe[116] + SFRe[117];
	I = SFIm[116] + SFIm[117];
	SFRe[117] = SFRe[116] - SFRe[117];
	SFIm[117] = SFIm[116] - SFIm[117];
	SFRe[116] = R;
	SFIm[116] = I;
	Re0 = SFRe[112]; Im0 = SFIm[112];
	Re1 = SFRe[113]; Im1 = SFIm[113];
	Re2 = SFRe[114]; Im2 = SFIm[114];
	Re3 = SFRe[115]; Im3 = SFIm[115];
	SFRe[112] = Re0 + Re1; SFIm[112] = Im0 + Im1;
	SFRe[113] = Re0 - Re1; SFIm[113] = Im0 - Im1;
	SFRe[114] = Re2 + Re3; SFIm[114] = Im2 + Im3;
	SFRe[115] = Im2 - Im3; SFIm[115] = Re3 - Re2;
	RA = SFRe[112] + SFRe[114];
	IA = SFIm[112] + SFIm[114];
	SFRe[114] = SFRe[112] - SFRe[114];
	SFIm[114] = SFIm[112] - SFIm[114];
	SFRe[112] = RA;
	SFIm[112] = IA;
	RA = SFRe[113] + SFRe[115];
	IA = SFIm[113] + SFIm[115];
	SFRe[115] = SFRe[113] - SFRe[115];
	SFIm[115] = SFIm[113] - SFIm[115];
	SFRe[113] = RA;
	SFIm[113] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[116];
	I = SFIm[116];
	SFRe[116] = R * RF1 - I * IF1;
	SFIm[116] = R * IF1 + I * RF1;
	R = SFRe[118];
	I = SFIm[118];
	SFRe[118] = R * RF2 - I * IF2;
	SFIm[118] = R * IF2 + I * RF2;
	R = SFRe[118];
	I = SFIm[118];
	SFRe[118] = SFIm[116] - I;
	SFIm[118] = R - SFRe[116];
	SFRe[116] += R;
	SFIm[116] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[117];
	I = SFIm[117];
	SFRe[117] = R * RF1 - I * IF1;
	SFIm[117] = R * IF1 + I * RF1;
	R = SFRe[119];
	I = SFIm[119];
	SFRe[119] = R * RF2 - I * IF2;
	SFIm[119] = R * IF2 + I * RF2;
	R = SFRe[119];
	I = SFIm[119];
	SFRe[119] = SFIm[117] - I;
	SFIm[119] = R - SFRe[117];
	SFRe[117] += R;
	SFIm[117] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 112), _mm_load_ps(SFRe + 116));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 112), _mm_load_ps(SFIm + 116));
	_mm_store_ps(SFRe + 116, _mm_sub_ps(_mm_load_ps(SFRe + 112), _mm_load_ps(SFRe + 116)));
	_mm_store_ps(SFIm + 116, _mm_sub_ps(_mm_load_ps(SFIm + 112), _mm_load_ps(SFIm + 116)));
	_mm_store_ps(SFRe + 112, mR);
	_mm_store_ps(SFIm + 112, mI);
	Re0 = SFRe[108]; Im0 = SFIm[108];
	Re1 = SFRe[109]; Im1 = SFIm[109];
	Re2 = SFRe[110]; Im2 = SFIm[110];
	Re3 = SFRe[111]; Im3 = SFIm[111];
	SFRe[108] = Re0 + Re1; SFIm[108] = Im0 + Im1;
	SFRe[109] = Re0 - Re1; SFIm[109] = Im0 - Im1;
	SFRe[110] = Re2 + Re3; SFIm[110] = Im2 + Im3;
	SFRe[111] = Im2 - Im3; SFIm[111] = Re3 - Re2;
	RA = SFRe[108] + SFRe[110];
	IA = SFIm[108] + SFIm[110];
	SFRe[110] = SFRe[108] - SFRe[110];
	SFIm[110] = SFIm[108] - SFIm[110];
	SFRe[108] = RA;
	SFIm[108] = IA;
	RA = SFRe[109] + SFRe[111];
	IA = SFIm[109] + SFIm[111];
	SFRe[111] = SFRe[109] - SFRe[111];
	SFIm[111] = SFIm[109] - SFIm[111];
	SFRe[109] = RA;
	SFIm[109] = IA;
	Re0 = SFRe[104]; Im0 = SFIm[104];
	Re1 = SFRe[105]; Im1 = SFIm[105];
	Re2 = SFRe[106]; Im2 = SFIm[106];
	Re3 = SFRe[107]; Im3 = SFIm[107];
	SFRe[104] = Re0 + Re1; SFIm[104] = Im0 + Im1;
	SFRe[105] = Re0 - Re1; SFIm[105] = Im0 - Im1;
	SFRe[106] = Re2 + Re3; SFIm[106] = Im2 + Im3;
	SFRe[107] = Im2 - Im3; SFIm[107] = Re3 - Re2;
	RA = SFRe[104] + SFRe[106];
	IA = SFIm[104] + SFIm[106];
	SFRe[106] = SFRe[104] - SFRe[106];
	SFIm[106] = SFIm[104] - SFIm[106];
	SFRe[104] = RA;
	SFIm[104] = IA;
	RA = SFRe[105] + SFRe[107];
	IA = SFIm[105] + SFIm[107];
	SFRe[107] = SFRe[105] - SFRe[107];
	SFIm[107] = SFIm[105] - SFIm[107];
	SFRe[105] = RA;
	SFIm[105] = IA;
	R = SFRe[102] + SFRe[103];
	I = SFIm[102] + SFIm[103];
	SFRe[103] = SFRe[102] - SFRe[103];
	SFIm[103] = SFIm[102] - SFIm[103];
	SFRe[102] = R;
	SFIm[102] = I;
	R = SFRe[100] + SFRe[101];
	I = SFIm[100] + SFIm[101];
	SFRe[101] = SFRe[100] - SFRe[101];
	SFIm[101] = SFIm[100] - SFIm[101];
	SFRe[100] = R;
	SFIm[100] = I;
	Re0 = SFRe[96]; Im0 = SFIm[96];
	Re1 = SFRe[97]; Im1 = SFIm[97];
	Re2 = SFRe[98]; Im2 = SFIm[98];
	Re3 = SFRe[99]; Im3 = SFIm[99];
	SFRe[96] = Re0 + Re1; SFIm[96] = Im0 + Im1;
	SFRe[97] = Re0 - Re1; SFIm[97] = Im0 - Im1;
	SFRe[98] = Re2 + Re3; SFIm[98] = Im2 + Im3;
	SFRe[99] = Im2 - Im3; SFIm[99] = Re3 - Re2;
	RA = SFRe[96] + SFRe[98];
	IA = SFIm[96] + SFIm[98];
	SFRe[98] = SFRe[96] - SFRe[98];
	SFIm[98] = SFIm[96] - SFIm[98];
	SFRe[96] = RA;
	SFIm[96] = IA;
	RA = SFRe[97] + SFRe[99];
	IA = SFIm[97] + SFIm[99];
	SFRe[99] = SFRe[97] - SFRe[99];
	SFIm[99] = SFIm[97] - SFIm[99];
	SFRe[97] = RA;
	SFIm[97] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[100];
	I = SFIm[100];
	SFRe[100] = R * RF1 - I * IF1;
	SFIm[100] = R * IF1 + I * RF1;
	R = SFRe[102];
	I = SFIm[102];
	SFRe[102] = R * RF2 - I * IF2;
	SFIm[102] = R * IF2 + I * RF2;
	R = SFRe[102];
	I = SFIm[102];
	SFRe[102] = SFIm[100] - I;
	SFIm[102] = R - SFRe[100];
	SFRe[100] += R;
	SFIm[100] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[101];
	I = SFIm[101];
	SFRe[101] = R * RF1 - I * IF1;
	SFIm[101] = R * IF1 + I * RF1;
	R = SFRe[103];
	I = SFIm[103];
	SFRe[103] = R * RF2 - I * IF2;
	SFIm[103] = R * IF2 + I * RF2;
	R = SFRe[103];
	I = SFIm[103];
	SFRe[103] = SFIm[101] - I;
	SFIm[103] = R - SFRe[101];
	SFRe[101] += R;
	SFIm[101] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 96), _mm_load_ps(SFRe + 100));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 96), _mm_load_ps(SFIm + 100));
	_mm_store_ps(SFRe + 100, _mm_sub_ps(_mm_load_ps(SFRe + 96), _mm_load_ps(SFRe + 100)));
	_mm_store_ps(SFIm + 100, _mm_sub_ps(_mm_load_ps(SFIm + 96), _mm_load_ps(SFIm + 100)));
	_mm_store_ps(SFRe + 96, mR);
	_mm_store_ps(SFIm + 96, mI);
	mRF1 = _mm_set_ps(0.382712, 0.707133, 0.923896, 1.000000);
	mIF1 = _mm_set_ps(-0.923868, -0.707080, -0.382643, -0.000000);
	mRF2 = _mm_set_ps(-0.923896, -0.707098, 0.382712, 1.000000);
	mIF2 = _mm_set_ps(0.382643, -0.707116, -0.923868, -0.000000);
	mR = _mm_load_ps(SFRe + 104);
	mI = _mm_load_ps(SFIm + 104);
	_mm_store_ps(SFRe + 104, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 104, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 108);
	mI = _mm_load_ps(SFIm + 108);
	_mm_store_ps(SFRe + 108, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 108, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 108);
	mI = _mm_load_ps(SFIm + 108);
	_mm_store_ps(SFRe + 108, _mm_sub_ps(_mm_load_ps(SFIm + 104), mI));
	_mm_store_ps(SFIm + 108, _mm_sub_ps(mR, _mm_load_ps(SFRe + 104)));
	_mm_store_ps(SFRe + 104, _mm_add_ps(_mm_load_ps(SFRe + 104), mR));
	_mm_store_ps(SFIm + 104, _mm_add_ps(_mm_load_ps(SFIm + 104), mI));
	mR = _mm_add_ps(_mm_load_ps(SFRe + 96), _mm_load_ps(SFRe + 104));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 96), _mm_load_ps(SFIm + 104));
	_mm_store_ps(SFRe + 104, _mm_sub_ps(_mm_load_ps(SFRe + 96), _mm_load_ps(SFRe + 104)));
	_mm_store_ps(SFIm + 104, _mm_sub_ps(_mm_load_ps(SFIm + 96), _mm_load_ps(SFIm + 104)));
	_mm_store_ps(SFRe + 96, mR);
	_mm_store_ps(SFIm + 96, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 100), _mm_load_ps(SFRe + 108));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 100), _mm_load_ps(SFIm + 108));
	_mm_store_ps(SFRe + 108, _mm_sub_ps(_mm_load_ps(SFRe + 100), _mm_load_ps(SFRe + 108)));
	_mm_store_ps(SFIm + 108, _mm_sub_ps(_mm_load_ps(SFIm + 100), _mm_load_ps(SFIm + 108)));
	_mm_store_ps(SFRe + 100, mR);
	_mm_store_ps(SFIm + 100, mI);
	mRF1 = _mm_set_ps(0.831492, 0.923896, 0.980794, 1.000000);
	mIF1 = _mm_set_ps(-0.555536, -0.382643, -0.195044, -0.000000);
	mRF2 = _mm_set_ps(-0.195069, 0.382712, 0.831492, 1.000000);
	mIF2 = _mm_set_ps(-0.980790, -0.923868, -0.555536, -0.000000);
	mR = _mm_load_ps(SFRe + 112);
	mI = _mm_load_ps(SFIm + 112);
	_mm_store_ps(SFRe + 112, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 112, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 120);
	mI = _mm_load_ps(SFIm + 120);
	_mm_store_ps(SFRe + 120, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 120, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 120);
	mI = _mm_load_ps(SFIm + 120);
	_mm_store_ps(SFRe + 120, _mm_sub_ps(_mm_load_ps(SFIm + 112), mI));
	_mm_store_ps(SFIm + 120, _mm_sub_ps(mR, _mm_load_ps(SFRe + 112)));
	_mm_store_ps(SFRe + 112, _mm_add_ps(_mm_load_ps(SFRe + 112), mR));
	_mm_store_ps(SFIm + 112, _mm_add_ps(_mm_load_ps(SFIm + 112), mI));
	mRF1 = _mm_set_ps(0.195118, 0.382712, 0.555599, 0.707133);
	mIF1 = _mm_set_ps(-0.980780, -0.923868, -0.831451, -0.707080);
	mRF2 = _mm_set_ps(-0.555599, -0.923896, -0.980785, -0.707098);
	mIF2 = _mm_set_ps(0.831451, 0.382643, -0.195093, -0.707116);
	mR = _mm_load_ps(SFRe + 116);
	mI = _mm_load_ps(SFIm + 116);
	_mm_store_ps(SFRe + 116, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 116, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 124);
	mI = _mm_load_ps(SFIm + 124);
	_mm_store_ps(SFRe + 124, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 124, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 124);
	mI = _mm_load_ps(SFIm + 124);
	_mm_store_ps(SFRe + 124, _mm_sub_ps(_mm_load_ps(SFIm + 116), mI));
	_mm_store_ps(SFIm + 124, _mm_sub_ps(mR, _mm_load_ps(SFRe + 116)));
	_mm_store_ps(SFRe + 116, _mm_add_ps(_mm_load_ps(SFRe + 116), mR));
	_mm_store_ps(SFIm + 116, _mm_add_ps(_mm_load_ps(SFIm + 116), mI));
	mR = _mm_add_ps(_mm_load_ps(SFRe + 96), _mm_load_ps(SFRe + 112));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 96), _mm_load_ps(SFIm + 112));
	_mm_store_ps(SFRe + 112, _mm_sub_ps(_mm_load_ps(SFRe + 96), _mm_load_ps(SFRe + 112)));
	_mm_store_ps(SFIm + 112, _mm_sub_ps(_mm_load_ps(SFIm + 96), _mm_load_ps(SFIm + 112)));
	_mm_store_ps(SFRe + 96, mR);
	_mm_store_ps(SFIm + 96, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 100), _mm_load_ps(SFRe + 116));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 100), _mm_load_ps(SFIm + 116));
	_mm_store_ps(SFRe + 116, _mm_sub_ps(_mm_load_ps(SFRe + 100), _mm_load_ps(SFRe + 116)));
	_mm_store_ps(SFIm + 116, _mm_sub_ps(_mm_load_ps(SFIm + 100), _mm_load_ps(SFIm + 116)));
	_mm_store_ps(SFRe + 100, mR);
	_mm_store_ps(SFIm + 100, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 104), _mm_load_ps(SFRe + 120));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 104), _mm_load_ps(SFIm + 120));
	_mm_store_ps(SFRe + 120, _mm_sub_ps(_mm_load_ps(SFRe + 104), _mm_load_ps(SFRe + 120)));
	_mm_store_ps(SFIm + 120, _mm_sub_ps(_mm_load_ps(SFIm + 104), _mm_load_ps(SFIm + 120)));
	_mm_store_ps(SFRe + 104, mR);
	_mm_store_ps(SFIm + 104, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 108), _mm_load_ps(SFRe + 124));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 108), _mm_load_ps(SFIm + 124));
	_mm_store_ps(SFRe + 124, _mm_sub_ps(_mm_load_ps(SFRe + 108), _mm_load_ps(SFRe + 124)));
	_mm_store_ps(SFIm + 124, _mm_sub_ps(_mm_load_ps(SFIm + 108), _mm_load_ps(SFIm + 124)));
	_mm_store_ps(SFRe + 108, mR);
	_mm_store_ps(SFIm + 108, mI);
	R = SFRe[94] + SFRe[95];
	I = SFIm[94] + SFIm[95];
	SFRe[95] = SFRe[94] - SFRe[95];
	SFIm[95] = SFIm[94] - SFIm[95];
	SFRe[94] = R;
	SFIm[94] = I;
	R = SFRe[92] + SFRe[93];
	I = SFIm[92] + SFIm[93];
	SFRe[93] = SFRe[92] - SFRe[93];
	SFIm[93] = SFIm[92] - SFIm[93];
	SFRe[92] = R;
	SFIm[92] = I;
	Re0 = SFRe[88]; Im0 = SFIm[88];
	Re1 = SFRe[89]; Im1 = SFIm[89];
	Re2 = SFRe[90]; Im2 = SFIm[90];
	Re3 = SFRe[91]; Im3 = SFIm[91];
	SFRe[88] = Re0 + Re1; SFIm[88] = Im0 + Im1;
	SFRe[89] = Re0 - Re1; SFIm[89] = Im0 - Im1;
	SFRe[90] = Re2 + Re3; SFIm[90] = Im2 + Im3;
	SFRe[91] = Im2 - Im3; SFIm[91] = Re3 - Re2;
	RA = SFRe[88] + SFRe[90];
	IA = SFIm[88] + SFIm[90];
	SFRe[90] = SFRe[88] - SFRe[90];
	SFIm[90] = SFIm[88] - SFIm[90];
	SFRe[88] = RA;
	SFIm[88] = IA;
	RA = SFRe[89] + SFRe[91];
	IA = SFIm[89] + SFIm[91];
	SFRe[91] = SFRe[89] - SFRe[91];
	SFIm[91] = SFIm[89] - SFIm[91];
	SFRe[89] = RA;
	SFIm[89] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[92];
	I = SFIm[92];
	SFRe[92] = R * RF1 - I * IF1;
	SFIm[92] = R * IF1 + I * RF1;
	R = SFRe[94];
	I = SFIm[94];
	SFRe[94] = R * RF2 - I * IF2;
	SFIm[94] = R * IF2 + I * RF2;
	R = SFRe[94];
	I = SFIm[94];
	SFRe[94] = SFIm[92] - I;
	SFIm[94] = R - SFRe[92];
	SFRe[92] += R;
	SFIm[92] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[93];
	I = SFIm[93];
	SFRe[93] = R * RF1 - I * IF1;
	SFIm[93] = R * IF1 + I * RF1;
	R = SFRe[95];
	I = SFIm[95];
	SFRe[95] = R * RF2 - I * IF2;
	SFIm[95] = R * IF2 + I * RF2;
	R = SFRe[95];
	I = SFIm[95];
	SFRe[95] = SFIm[93] - I;
	SFIm[95] = R - SFRe[93];
	SFRe[93] += R;
	SFIm[93] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 88), _mm_load_ps(SFRe + 92));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 88), _mm_load_ps(SFIm + 92));
	_mm_store_ps(SFRe + 92, _mm_sub_ps(_mm_load_ps(SFRe + 88), _mm_load_ps(SFRe + 92)));
	_mm_store_ps(SFIm + 92, _mm_sub_ps(_mm_load_ps(SFIm + 88), _mm_load_ps(SFIm + 92)));
	_mm_store_ps(SFRe + 88, mR);
	_mm_store_ps(SFIm + 88, mI);
	R = SFRe[86] + SFRe[87];
	I = SFIm[86] + SFIm[87];
	SFRe[87] = SFRe[86] - SFRe[87];
	SFIm[87] = SFIm[86] - SFIm[87];
	SFRe[86] = R;
	SFIm[86] = I;
	R = SFRe[84] + SFRe[85];
	I = SFIm[84] + SFIm[85];
	SFRe[85] = SFRe[84] - SFRe[85];
	SFIm[85] = SFIm[84] - SFIm[85];
	SFRe[84] = R;
	SFIm[84] = I;
	Re0 = SFRe[80]; Im0 = SFIm[80];
	Re1 = SFRe[81]; Im1 = SFIm[81];
	Re2 = SFRe[82]; Im2 = SFIm[82];
	Re3 = SFRe[83]; Im3 = SFIm[83];
	SFRe[80] = Re0 + Re1; SFIm[80] = Im0 + Im1;
	SFRe[81] = Re0 - Re1; SFIm[81] = Im0 - Im1;
	SFRe[82] = Re2 + Re3; SFIm[82] = Im2 + Im3;
	SFRe[83] = Im2 - Im3; SFIm[83] = Re3 - Re2;
	RA = SFRe[80] + SFRe[82];
	IA = SFIm[80] + SFIm[82];
	SFRe[82] = SFRe[80] - SFRe[82];
	SFIm[82] = SFIm[80] - SFIm[82];
	SFRe[80] = RA;
	SFIm[80] = IA;
	RA = SFRe[81] + SFRe[83];
	IA = SFIm[81] + SFIm[83];
	SFRe[83] = SFRe[81] - SFRe[83];
	SFIm[83] = SFIm[81] - SFIm[83];
	SFRe[81] = RA;
	SFIm[81] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[84];
	I = SFIm[84];
	SFRe[84] = R * RF1 - I * IF1;
	SFIm[84] = R * IF1 + I * RF1;
	R = SFRe[86];
	I = SFIm[86];
	SFRe[86] = R * RF2 - I * IF2;
	SFIm[86] = R * IF2 + I * RF2;
	R = SFRe[86];
	I = SFIm[86];
	SFRe[86] = SFIm[84] - I;
	SFIm[86] = R - SFRe[84];
	SFRe[84] += R;
	SFIm[84] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[85];
	I = SFIm[85];
	SFRe[85] = R * RF1 - I * IF1;
	SFIm[85] = R * IF1 + I * RF1;
	R = SFRe[87];
	I = SFIm[87];
	SFRe[87] = R * RF2 - I * IF2;
	SFIm[87] = R * IF2 + I * RF2;
	R = SFRe[87];
	I = SFIm[87];
	SFRe[87] = SFIm[85] - I;
	SFIm[87] = R - SFRe[85];
	SFRe[85] += R;
	SFIm[85] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 80), _mm_load_ps(SFRe + 84));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 80), _mm_load_ps(SFIm + 84));
	_mm_store_ps(SFRe + 84, _mm_sub_ps(_mm_load_ps(SFRe + 80), _mm_load_ps(SFRe + 84)));
	_mm_store_ps(SFIm + 84, _mm_sub_ps(_mm_load_ps(SFIm + 80), _mm_load_ps(SFIm + 84)));
	_mm_store_ps(SFRe + 80, mR);
	_mm_store_ps(SFIm + 80, mI);
	Re0 = SFRe[76]; Im0 = SFIm[76];
	Re1 = SFRe[77]; Im1 = SFIm[77];
	Re2 = SFRe[78]; Im2 = SFIm[78];
	Re3 = SFRe[79]; Im3 = SFIm[79];
	SFRe[76] = Re0 + Re1; SFIm[76] = Im0 + Im1;
	SFRe[77] = Re0 - Re1; SFIm[77] = Im0 - Im1;
	SFRe[78] = Re2 + Re3; SFIm[78] = Im2 + Im3;
	SFRe[79] = Im2 - Im3; SFIm[79] = Re3 - Re2;
	RA = SFRe[76] + SFRe[78];
	IA = SFIm[76] + SFIm[78];
	SFRe[78] = SFRe[76] - SFRe[78];
	SFIm[78] = SFIm[76] - SFIm[78];
	SFRe[76] = RA;
	SFIm[76] = IA;
	RA = SFRe[77] + SFRe[79];
	IA = SFIm[77] + SFIm[79];
	SFRe[79] = SFRe[77] - SFRe[79];
	SFIm[79] = SFIm[77] - SFIm[79];
	SFRe[77] = RA;
	SFIm[77] = IA;
	Re0 = SFRe[72]; Im0 = SFIm[72];
	Re1 = SFRe[73]; Im1 = SFIm[73];
	Re2 = SFRe[74]; Im2 = SFIm[74];
	Re3 = SFRe[75]; Im3 = SFIm[75];
	SFRe[72] = Re0 + Re1; SFIm[72] = Im0 + Im1;
	SFRe[73] = Re0 - Re1; SFIm[73] = Im0 - Im1;
	SFRe[74] = Re2 + Re3; SFIm[74] = Im2 + Im3;
	SFRe[75] = Im2 - Im3; SFIm[75] = Re3 - Re2;
	RA = SFRe[72] + SFRe[74];
	IA = SFIm[72] + SFIm[74];
	SFRe[74] = SFRe[72] - SFRe[74];
	SFIm[74] = SFIm[72] - SFIm[74];
	SFRe[72] = RA;
	SFIm[72] = IA;
	RA = SFRe[73] + SFRe[75];
	IA = SFIm[73] + SFIm[75];
	SFRe[75] = SFRe[73] - SFRe[75];
	SFIm[75] = SFIm[73] - SFIm[75];
	SFRe[73] = RA;
	SFIm[73] = IA;
	R = SFRe[70] + SFRe[71];
	I = SFIm[70] + SFIm[71];
	SFRe[71] = SFRe[70] - SFRe[71];
	SFIm[71] = SFIm[70] - SFIm[71];
	SFRe[70] = R;
	SFIm[70] = I;
	R = SFRe[68] + SFRe[69];
	I = SFIm[68] + SFIm[69];
	SFRe[69] = SFRe[68] - SFRe[69];
	SFIm[69] = SFIm[68] - SFIm[69];
	SFRe[68] = R;
	SFIm[68] = I;
	Re0 = SFRe[64]; Im0 = SFIm[64];
	Re1 = SFRe[65]; Im1 = SFIm[65];
	Re2 = SFRe[66]; Im2 = SFIm[66];
	Re3 = SFRe[67]; Im3 = SFIm[67];
	SFRe[64] = Re0 + Re1; SFIm[64] = Im0 + Im1;
	SFRe[65] = Re0 - Re1; SFIm[65] = Im0 - Im1;
	SFRe[66] = Re2 + Re3; SFIm[66] = Im2 + Im3;
	SFRe[67] = Im2 - Im3; SFIm[67] = Re3 - Re2;
	RA = SFRe[64] + SFRe[66];
	IA = SFIm[64] + SFIm[66];
	SFRe[66] = SFRe[64] - SFRe[66];
	SFIm[66] = SFIm[64] - SFIm[66];
	SFRe[64] = RA;
	SFIm[64] = IA;
	RA = SFRe[65] + SFRe[67];
	IA = SFIm[65] + SFIm[67];
	SFRe[67] = SFRe[65] - SFRe[67];
	SFIm[67] = SFIm[65] - SFIm[67];
	SFRe[65] = RA;
	SFIm[65] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[68];
	I = SFIm[68];
	SFRe[68] = R * RF1 - I * IF1;
	SFIm[68] = R * IF1 + I * RF1;
	R = SFRe[70];
	I = SFIm[70];
	SFRe[70] = R * RF2 - I * IF2;
	SFIm[70] = R * IF2 + I * RF2;
	R = SFRe[70];
	I = SFIm[70];
	SFRe[70] = SFIm[68] - I;
	SFIm[70] = R - SFRe[68];
	SFRe[68] += R;
	SFIm[68] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[69];
	I = SFIm[69];
	SFRe[69] = R * RF1 - I * IF1;
	SFIm[69] = R * IF1 + I * RF1;
	R = SFRe[71];
	I = SFIm[71];
	SFRe[71] = R * RF2 - I * IF2;
	SFIm[71] = R * IF2 + I * RF2;
	R = SFRe[71];
	I = SFIm[71];
	SFRe[71] = SFIm[69] - I;
	SFIm[71] = R - SFRe[69];
	SFRe[69] += R;
	SFIm[69] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 64), _mm_load_ps(SFRe + 68));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 64), _mm_load_ps(SFIm + 68));
	_mm_store_ps(SFRe + 68, _mm_sub_ps(_mm_load_ps(SFRe + 64), _mm_load_ps(SFRe + 68)));
	_mm_store_ps(SFIm + 68, _mm_sub_ps(_mm_load_ps(SFIm + 64), _mm_load_ps(SFIm + 68)));
	_mm_store_ps(SFRe + 64, mR);
	_mm_store_ps(SFIm + 64, mI);
	mRF1 = _mm_set_ps(0.382712, 0.707133, 0.923896, 1.000000);
	mIF1 = _mm_set_ps(-0.923868, -0.707080, -0.382643, -0.000000);
	mRF2 = _mm_set_ps(-0.923896, -0.707098, 0.382712, 1.000000);
	mIF2 = _mm_set_ps(0.382643, -0.707116, -0.923868, -0.000000);
	mR = _mm_load_ps(SFRe + 72);
	mI = _mm_load_ps(SFIm + 72);
	_mm_store_ps(SFRe + 72, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 72, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 76);
	mI = _mm_load_ps(SFIm + 76);
	_mm_store_ps(SFRe + 76, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 76, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 76);
	mI = _mm_load_ps(SFIm + 76);
	_mm_store_ps(SFRe + 76, _mm_sub_ps(_mm_load_ps(SFIm + 72), mI));
	_mm_store_ps(SFIm + 76, _mm_sub_ps(mR, _mm_load_ps(SFRe + 72)));
	_mm_store_ps(SFRe + 72, _mm_add_ps(_mm_load_ps(SFRe + 72), mR));
	_mm_store_ps(SFIm + 72, _mm_add_ps(_mm_load_ps(SFIm + 72), mI));
	mR = _mm_add_ps(_mm_load_ps(SFRe + 64), _mm_load_ps(SFRe + 72));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 64), _mm_load_ps(SFIm + 72));
	_mm_store_ps(SFRe + 72, _mm_sub_ps(_mm_load_ps(SFRe + 64), _mm_load_ps(SFRe + 72)));
	_mm_store_ps(SFIm + 72, _mm_sub_ps(_mm_load_ps(SFIm + 64), _mm_load_ps(SFIm + 72)));
	_mm_store_ps(SFRe + 64, mR);
	_mm_store_ps(SFIm + 64, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 68), _mm_load_ps(SFRe + 76));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 68), _mm_load_ps(SFIm + 76));
	_mm_store_ps(SFRe + 76, _mm_sub_ps(_mm_load_ps(SFRe + 68), _mm_load_ps(SFRe + 76)));
	_mm_store_ps(SFIm + 76, _mm_sub_ps(_mm_load_ps(SFIm + 68), _mm_load_ps(SFIm + 76)));
	_mm_store_ps(SFRe + 68, mR);
	_mm_store_ps(SFIm + 68, mI);
	mRF1 = _mm_set_ps(0.831492, 0.923896, 0.980794, 1.000000);
	mIF1 = _mm_set_ps(-0.555536, -0.382643, -0.195044, -0.000000);
	mRF2 = _mm_set_ps(-0.195069, 0.382712, 0.831492, 1.000000);
	mIF2 = _mm_set_ps(-0.980790, -0.923868, -0.555536, -0.000000);
	mR = _mm_load_ps(SFRe + 80);
	mI = _mm_load_ps(SFIm + 80);
	_mm_store_ps(SFRe + 80, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 80, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 88);
	mI = _mm_load_ps(SFIm + 88);
	_mm_store_ps(SFRe + 88, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 88, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 88);
	mI = _mm_load_ps(SFIm + 88);
	_mm_store_ps(SFRe + 88, _mm_sub_ps(_mm_load_ps(SFIm + 80), mI));
	_mm_store_ps(SFIm + 88, _mm_sub_ps(mR, _mm_load_ps(SFRe + 80)));
	_mm_store_ps(SFRe + 80, _mm_add_ps(_mm_load_ps(SFRe + 80), mR));
	_mm_store_ps(SFIm + 80, _mm_add_ps(_mm_load_ps(SFIm + 80), mI));
	mRF1 = _mm_set_ps(0.195118, 0.382712, 0.555599, 0.707133);
	mIF1 = _mm_set_ps(-0.980780, -0.923868, -0.831451, -0.707080);
	mRF2 = _mm_set_ps(-0.555599, -0.923896, -0.980785, -0.707098);
	mIF2 = _mm_set_ps(0.831451, 0.382643, -0.195093, -0.707116);
	mR = _mm_load_ps(SFRe + 84);
	mI = _mm_load_ps(SFIm + 84);
	_mm_store_ps(SFRe + 84, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 84, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 92);
	mI = _mm_load_ps(SFIm + 92);
	_mm_store_ps(SFRe + 92, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 92, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 92);
	mI = _mm_load_ps(SFIm + 92);
	_mm_store_ps(SFRe + 92, _mm_sub_ps(_mm_load_ps(SFIm + 84), mI));
	_mm_store_ps(SFIm + 92, _mm_sub_ps(mR, _mm_load_ps(SFRe + 84)));
	_mm_store_ps(SFRe + 84, _mm_add_ps(_mm_load_ps(SFRe + 84), mR));
	_mm_store_ps(SFIm + 84, _mm_add_ps(_mm_load_ps(SFIm + 84), mI));
	mR = _mm_add_ps(_mm_load_ps(SFRe + 64), _mm_load_ps(SFRe + 80));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 64), _mm_load_ps(SFIm + 80));
	_mm_store_ps(SFRe + 80, _mm_sub_ps(_mm_load_ps(SFRe + 64), _mm_load_ps(SFRe + 80)));
	_mm_store_ps(SFIm + 80, _mm_sub_ps(_mm_load_ps(SFIm + 64), _mm_load_ps(SFIm + 80)));
	_mm_store_ps(SFRe + 64, mR);
	_mm_store_ps(SFIm + 64, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 68), _mm_load_ps(SFRe + 84));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 68), _mm_load_ps(SFIm + 84));
	_mm_store_ps(SFRe + 84, _mm_sub_ps(_mm_load_ps(SFRe + 68), _mm_load_ps(SFRe + 84)));
	_mm_store_ps(SFIm + 84, _mm_sub_ps(_mm_load_ps(SFIm + 68), _mm_load_ps(SFIm + 84)));
	_mm_store_ps(SFRe + 68, mR);
	_mm_store_ps(SFIm + 68, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 72), _mm_load_ps(SFRe + 88));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 72), _mm_load_ps(SFIm + 88));
	_mm_store_ps(SFRe + 88, _mm_sub_ps(_mm_load_ps(SFRe + 72), _mm_load_ps(SFRe + 88)));
	_mm_store_ps(SFIm + 88, _mm_sub_ps(_mm_load_ps(SFIm + 72), _mm_load_ps(SFIm + 88)));
	_mm_store_ps(SFRe + 72, mR);
	_mm_store_ps(SFIm + 72, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 76), _mm_load_ps(SFRe + 92));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 76), _mm_load_ps(SFIm + 92));
	_mm_store_ps(SFRe + 92, _mm_sub_ps(_mm_load_ps(SFRe + 76), _mm_load_ps(SFRe + 92)));
	_mm_store_ps(SFIm + 92, _mm_sub_ps(_mm_load_ps(SFIm + 76), _mm_load_ps(SFIm + 92)));
	_mm_store_ps(SFRe + 76, mR);
	_mm_store_ps(SFIm + 76, mI);
	Re0 = SFRe[60]; Im0 = SFIm[60];
	Re1 = SFRe[61]; Im1 = SFIm[61];
	Re2 = SFRe[62]; Im2 = SFIm[62];
	Re3 = SFRe[63]; Im3 = SFIm[63];
	SFRe[60] = Re0 + Re1; SFIm[60] = Im0 + Im1;
	SFRe[61] = Re0 - Re1; SFIm[61] = Im0 - Im1;
	SFRe[62] = Re2 + Re3; SFIm[62] = Im2 + Im3;
	SFRe[63] = Im2 - Im3; SFIm[63] = Re3 - Re2;
	RA = SFRe[60] + SFRe[62];
	IA = SFIm[60] + SFIm[62];
	SFRe[62] = SFRe[60] - SFRe[62];
	SFIm[62] = SFIm[60] - SFIm[62];
	SFRe[60] = RA;
	SFIm[60] = IA;
	RA = SFRe[61] + SFRe[63];
	IA = SFIm[61] + SFIm[63];
	SFRe[63] = SFRe[61] - SFRe[63];
	SFIm[63] = SFIm[61] - SFIm[63];
	SFRe[61] = RA;
	SFIm[61] = IA;
	Re0 = SFRe[56]; Im0 = SFIm[56];
	Re1 = SFRe[57]; Im1 = SFIm[57];
	Re2 = SFRe[58]; Im2 = SFIm[58];
	Re3 = SFRe[59]; Im3 = SFIm[59];
	SFRe[56] = Re0 + Re1; SFIm[56] = Im0 + Im1;
	SFRe[57] = Re0 - Re1; SFIm[57] = Im0 - Im1;
	SFRe[58] = Re2 + Re3; SFIm[58] = Im2 + Im3;
	SFRe[59] = Im2 - Im3; SFIm[59] = Re3 - Re2;
	RA = SFRe[56] + SFRe[58];
	IA = SFIm[56] + SFIm[58];
	SFRe[58] = SFRe[56] - SFRe[58];
	SFIm[58] = SFIm[56] - SFIm[58];
	SFRe[56] = RA;
	SFIm[56] = IA;
	RA = SFRe[57] + SFRe[59];
	IA = SFIm[57] + SFIm[59];
	SFRe[59] = SFRe[57] - SFRe[59];
	SFIm[59] = SFIm[57] - SFIm[59];
	SFRe[57] = RA;
	SFIm[57] = IA;
	R = SFRe[54] + SFRe[55];
	I = SFIm[54] + SFIm[55];
	SFRe[55] = SFRe[54] - SFRe[55];
	SFIm[55] = SFIm[54] - SFIm[55];
	SFRe[54] = R;
	SFIm[54] = I;
	R = SFRe[52] + SFRe[53];
	I = SFIm[52] + SFIm[53];
	SFRe[53] = SFRe[52] - SFRe[53];
	SFIm[53] = SFIm[52] - SFIm[53];
	SFRe[52] = R;
	SFIm[52] = I;
	Re0 = SFRe[48]; Im0 = SFIm[48];
	Re1 = SFRe[49]; Im1 = SFIm[49];
	Re2 = SFRe[50]; Im2 = SFIm[50];
	Re3 = SFRe[51]; Im3 = SFIm[51];
	SFRe[48] = Re0 + Re1; SFIm[48] = Im0 + Im1;
	SFRe[49] = Re0 - Re1; SFIm[49] = Im0 - Im1;
	SFRe[50] = Re2 + Re3; SFIm[50] = Im2 + Im3;
	SFRe[51] = Im2 - Im3; SFIm[51] = Re3 - Re2;
	RA = SFRe[48] + SFRe[50];
	IA = SFIm[48] + SFIm[50];
	SFRe[50] = SFRe[48] - SFRe[50];
	SFIm[50] = SFIm[48] - SFIm[50];
	SFRe[48] = RA;
	SFIm[48] = IA;
	RA = SFRe[49] + SFRe[51];
	IA = SFIm[49] + SFIm[51];
	SFRe[51] = SFRe[49] - SFRe[51];
	SFIm[51] = SFIm[49] - SFIm[51];
	SFRe[49] = RA;
	SFIm[49] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[52];
	I = SFIm[52];
	SFRe[52] = R * RF1 - I * IF1;
	SFIm[52] = R * IF1 + I * RF1;
	R = SFRe[54];
	I = SFIm[54];
	SFRe[54] = R * RF2 - I * IF2;
	SFIm[54] = R * IF2 + I * RF2;
	R = SFRe[54];
	I = SFIm[54];
	SFRe[54] = SFIm[52] - I;
	SFIm[54] = R - SFRe[52];
	SFRe[52] += R;
	SFIm[52] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[53];
	I = SFIm[53];
	SFRe[53] = R * RF1 - I * IF1;
	SFIm[53] = R * IF1 + I * RF1;
	R = SFRe[55];
	I = SFIm[55];
	SFRe[55] = R * RF2 - I * IF2;
	SFIm[55] = R * IF2 + I * RF2;
	R = SFRe[55];
	I = SFIm[55];
	SFRe[55] = SFIm[53] - I;
	SFIm[55] = R - SFRe[53];
	SFRe[53] += R;
	SFIm[53] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 48), _mm_load_ps(SFRe + 52));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 48), _mm_load_ps(SFIm + 52));
	_mm_store_ps(SFRe + 52, _mm_sub_ps(_mm_load_ps(SFRe + 48), _mm_load_ps(SFRe + 52)));
	_mm_store_ps(SFIm + 52, _mm_sub_ps(_mm_load_ps(SFIm + 48), _mm_load_ps(SFIm + 52)));
	_mm_store_ps(SFRe + 48, mR);
	_mm_store_ps(SFIm + 48, mI);
	mRF1 = _mm_set_ps(0.382712, 0.707133, 0.923896, 1.000000);
	mIF1 = _mm_set_ps(-0.923868, -0.707080, -0.382643, -0.000000);
	mRF2 = _mm_set_ps(-0.923896, -0.707098, 0.382712, 1.000000);
	mIF2 = _mm_set_ps(0.382643, -0.707116, -0.923868, -0.000000);
	mR = _mm_load_ps(SFRe + 56);
	mI = _mm_load_ps(SFIm + 56);
	_mm_store_ps(SFRe + 56, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 56, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 60);
	mI = _mm_load_ps(SFIm + 60);
	_mm_store_ps(SFRe + 60, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 60, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 60);
	mI = _mm_load_ps(SFIm + 60);
	_mm_store_ps(SFRe + 60, _mm_sub_ps(_mm_load_ps(SFIm + 56), mI));
	_mm_store_ps(SFIm + 60, _mm_sub_ps(mR, _mm_load_ps(SFRe + 56)));
	_mm_store_ps(SFRe + 56, _mm_add_ps(_mm_load_ps(SFRe + 56), mR));
	_mm_store_ps(SFIm + 56, _mm_add_ps(_mm_load_ps(SFIm + 56), mI));
	mR = _mm_add_ps(_mm_load_ps(SFRe + 48), _mm_load_ps(SFRe + 56));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 48), _mm_load_ps(SFIm + 56));
	_mm_store_ps(SFRe + 56, _mm_sub_ps(_mm_load_ps(SFRe + 48), _mm_load_ps(SFRe + 56)));
	_mm_store_ps(SFIm + 56, _mm_sub_ps(_mm_load_ps(SFIm + 48), _mm_load_ps(SFIm + 56)));
	_mm_store_ps(SFRe + 48, mR);
	_mm_store_ps(SFIm + 48, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 52), _mm_load_ps(SFRe + 60));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 52), _mm_load_ps(SFIm + 60));
	_mm_store_ps(SFRe + 60, _mm_sub_ps(_mm_load_ps(SFRe + 52), _mm_load_ps(SFRe + 60)));
	_mm_store_ps(SFIm + 60, _mm_sub_ps(_mm_load_ps(SFIm + 52), _mm_load_ps(SFIm + 60)));
	_mm_store_ps(SFRe + 52, mR);
	_mm_store_ps(SFIm + 52, mI);
	Re0 = SFRe[44]; Im0 = SFIm[44];
	Re1 = SFRe[45]; Im1 = SFIm[45];
	Re2 = SFRe[46]; Im2 = SFIm[46];
	Re3 = SFRe[47]; Im3 = SFIm[47];
	SFRe[44] = Re0 + Re1; SFIm[44] = Im0 + Im1;
	SFRe[45] = Re0 - Re1; SFIm[45] = Im0 - Im1;
	SFRe[46] = Re2 + Re3; SFIm[46] = Im2 + Im3;
	SFRe[47] = Im2 - Im3; SFIm[47] = Re3 - Re2;
	RA = SFRe[44] + SFRe[46];
	IA = SFIm[44] + SFIm[46];
	SFRe[46] = SFRe[44] - SFRe[46];
	SFIm[46] = SFIm[44] - SFIm[46];
	SFRe[44] = RA;
	SFIm[44] = IA;
	RA = SFRe[45] + SFRe[47];
	IA = SFIm[45] + SFIm[47];
	SFRe[47] = SFRe[45] - SFRe[47];
	SFIm[47] = SFIm[45] - SFIm[47];
	SFRe[45] = RA;
	SFIm[45] = IA;
	Re0 = SFRe[40]; Im0 = SFIm[40];
	Re1 = SFRe[41]; Im1 = SFIm[41];
	Re2 = SFRe[42]; Im2 = SFIm[42];
	Re3 = SFRe[43]; Im3 = SFIm[43];
	SFRe[40] = Re0 + Re1; SFIm[40] = Im0 + Im1;
	SFRe[41] = Re0 - Re1; SFIm[41] = Im0 - Im1;
	SFRe[42] = Re2 + Re3; SFIm[42] = Im2 + Im3;
	SFRe[43] = Im2 - Im3; SFIm[43] = Re3 - Re2;
	RA = SFRe[40] + SFRe[42];
	IA = SFIm[40] + SFIm[42];
	SFRe[42] = SFRe[40] - SFRe[42];
	SFIm[42] = SFIm[40] - SFIm[42];
	SFRe[40] = RA;
	SFIm[40] = IA;
	RA = SFRe[41] + SFRe[43];
	IA = SFIm[41] + SFIm[43];
	SFRe[43] = SFRe[41] - SFRe[43];
	SFIm[43] = SFIm[41] - SFIm[43];
	SFRe[41] = RA;
	SFIm[41] = IA;
	R = SFRe[38] + SFRe[39];
	I = SFIm[38] + SFIm[39];
	SFRe[39] = SFRe[38] - SFRe[39];
	SFIm[39] = SFIm[38] - SFIm[39];
	SFRe[38] = R;
	SFIm[38] = I;
	R = SFRe[36] + SFRe[37];
	I = SFIm[36] + SFIm[37];
	SFRe[37] = SFRe[36] - SFRe[37];
	SFIm[37] = SFIm[36] - SFIm[37];
	SFRe[36] = R;
	SFIm[36] = I;
	Re0 = SFRe[32]; Im0 = SFIm[32];
	Re1 = SFRe[33]; Im1 = SFIm[33];
	Re2 = SFRe[34]; Im2 = SFIm[34];
	Re3 = SFRe[35]; Im3 = SFIm[35];
	SFRe[32] = Re0 + Re1; SFIm[32] = Im0 + Im1;
	SFRe[33] = Re0 - Re1; SFIm[33] = Im0 - Im1;
	SFRe[34] = Re2 + Re3; SFIm[34] = Im2 + Im3;
	SFRe[35] = Im2 - Im3; SFIm[35] = Re3 - Re2;
	RA = SFRe[32] + SFRe[34];
	IA = SFIm[32] + SFIm[34];
	SFRe[34] = SFRe[32] - SFRe[34];
	SFIm[34] = SFIm[32] - SFIm[34];
	SFRe[32] = RA;
	SFIm[32] = IA;
	RA = SFRe[33] + SFRe[35];
	IA = SFIm[33] + SFIm[35];
	SFRe[35] = SFRe[33] - SFRe[35];
	SFIm[35] = SFIm[33] - SFIm[35];
	SFRe[33] = RA;
	SFIm[33] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[36];
	I = SFIm[36];
	SFRe[36] = R * RF1 - I * IF1;
	SFIm[36] = R * IF1 + I * RF1;
	R = SFRe[38];
	I = SFIm[38];
	SFRe[38] = R * RF2 - I * IF2;
	SFIm[38] = R * IF2 + I * RF2;
	R = SFRe[38];
	I = SFIm[38];
	SFRe[38] = SFIm[36] - I;
	SFIm[38] = R - SFRe[36];
	SFRe[36] += R;
	SFIm[36] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[37];
	I = SFIm[37];
	SFRe[37] = R * RF1 - I * IF1;
	SFIm[37] = R * IF1 + I * RF1;
	R = SFRe[39];
	I = SFIm[39];
	SFRe[39] = R * RF2 - I * IF2;
	SFIm[39] = R * IF2 + I * RF2;
	R = SFRe[39];
	I = SFIm[39];
	SFRe[39] = SFIm[37] - I;
	SFIm[39] = R - SFRe[37];
	SFRe[37] += R;
	SFIm[37] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 32), _mm_load_ps(SFRe + 36));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 32), _mm_load_ps(SFIm + 36));
	_mm_store_ps(SFRe + 36, _mm_sub_ps(_mm_load_ps(SFRe + 32), _mm_load_ps(SFRe + 36)));
	_mm_store_ps(SFIm + 36, _mm_sub_ps(_mm_load_ps(SFIm + 32), _mm_load_ps(SFIm + 36)));
	_mm_store_ps(SFRe + 32, mR);
	_mm_store_ps(SFIm + 32, mI);
	mRF1 = _mm_set_ps(0.382712, 0.707133, 0.923896, 1.000000);
	mIF1 = _mm_set_ps(-0.923868, -0.707080, -0.382643, -0.000000);
	mRF2 = _mm_set_ps(-0.923896, -0.707098, 0.382712, 1.000000);
	mIF2 = _mm_set_ps(0.382643, -0.707116, -0.923868, -0.000000);
	mR = _mm_load_ps(SFRe + 40);
	mI = _mm_load_ps(SFIm + 40);
	_mm_store_ps(SFRe + 40, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 40, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 44);
	mI = _mm_load_ps(SFIm + 44);
	_mm_store_ps(SFRe + 44, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 44, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 44);
	mI = _mm_load_ps(SFIm + 44);
	_mm_store_ps(SFRe + 44, _mm_sub_ps(_mm_load_ps(SFIm + 40), mI));
	_mm_store_ps(SFIm + 44, _mm_sub_ps(mR, _mm_load_ps(SFRe + 40)));
	_mm_store_ps(SFRe + 40, _mm_add_ps(_mm_load_ps(SFRe + 40), mR));
	_mm_store_ps(SFIm + 40, _mm_add_ps(_mm_load_ps(SFIm + 40), mI));
	mR = _mm_add_ps(_mm_load_ps(SFRe + 32), _mm_load_ps(SFRe + 40));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 32), _mm_load_ps(SFIm + 40));
	_mm_store_ps(SFRe + 40, _mm_sub_ps(_mm_load_ps(SFRe + 32), _mm_load_ps(SFRe + 40)));
	_mm_store_ps(SFIm + 40, _mm_sub_ps(_mm_load_ps(SFIm + 32), _mm_load_ps(SFIm + 40)));
	_mm_store_ps(SFRe + 32, mR);
	_mm_store_ps(SFIm + 32, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 36), _mm_load_ps(SFRe + 44));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 36), _mm_load_ps(SFIm + 44));
	_mm_store_ps(SFRe + 44, _mm_sub_ps(_mm_load_ps(SFRe + 36), _mm_load_ps(SFRe + 44)));
	_mm_store_ps(SFIm + 44, _mm_sub_ps(_mm_load_ps(SFIm + 36), _mm_load_ps(SFIm + 44)));
	_mm_store_ps(SFRe + 36, mR);
	_mm_store_ps(SFIm + 36, mI);
	R = SFRe[30] + SFRe[31];
	I = SFIm[30] + SFIm[31];
	SFRe[31] = SFRe[30] - SFRe[31];
	SFIm[31] = SFIm[30] - SFIm[31];
	SFRe[30] = R;
	SFIm[30] = I;
	R = SFRe[28] + SFRe[29];
	I = SFIm[28] + SFIm[29];
	SFRe[29] = SFRe[28] - SFRe[29];
	SFIm[29] = SFIm[28] - SFIm[29];
	SFRe[28] = R;
	SFIm[28] = I;
	Re0 = SFRe[24]; Im0 = SFIm[24];
	Re1 = SFRe[25]; Im1 = SFIm[25];
	Re2 = SFRe[26]; Im2 = SFIm[26];
	Re3 = SFRe[27]; Im3 = SFIm[27];
	SFRe[24] = Re0 + Re1; SFIm[24] = Im0 + Im1;
	SFRe[25] = Re0 - Re1; SFIm[25] = Im0 - Im1;
	SFRe[26] = Re2 + Re3; SFIm[26] = Im2 + Im3;
	SFRe[27] = Im2 - Im3; SFIm[27] = Re3 - Re2;
	RA = SFRe[24] + SFRe[26];
	IA = SFIm[24] + SFIm[26];
	SFRe[26] = SFRe[24] - SFRe[26];
	SFIm[26] = SFIm[24] - SFIm[26];
	SFRe[24] = RA;
	SFIm[24] = IA;
	RA = SFRe[25] + SFRe[27];
	IA = SFIm[25] + SFIm[27];
	SFRe[27] = SFRe[25] - SFRe[27];
	SFIm[27] = SFIm[25] - SFIm[27];
	SFRe[25] = RA;
	SFIm[25] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[28];
	I = SFIm[28];
	SFRe[28] = R * RF1 - I * IF1;
	SFIm[28] = R * IF1 + I * RF1;
	R = SFRe[30];
	I = SFIm[30];
	SFRe[30] = R * RF2 - I * IF2;
	SFIm[30] = R * IF2 + I * RF2;
	R = SFRe[30];
	I = SFIm[30];
	SFRe[30] = SFIm[28] - I;
	SFIm[30] = R - SFRe[28];
	SFRe[28] += R;
	SFIm[28] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[29];
	I = SFIm[29];
	SFRe[29] = R * RF1 - I * IF1;
	SFIm[29] = R * IF1 + I * RF1;
	R = SFRe[31];
	I = SFIm[31];
	SFRe[31] = R * RF2 - I * IF2;
	SFIm[31] = R * IF2 + I * RF2;
	R = SFRe[31];
	I = SFIm[31];
	SFRe[31] = SFIm[29] - I;
	SFIm[31] = R - SFRe[29];
	SFRe[29] += R;
	SFIm[29] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 24), _mm_load_ps(SFRe + 28));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 24), _mm_load_ps(SFIm + 28));
	_mm_store_ps(SFRe + 28, _mm_sub_ps(_mm_load_ps(SFRe + 24), _mm_load_ps(SFRe + 28)));
	_mm_store_ps(SFIm + 28, _mm_sub_ps(_mm_load_ps(SFIm + 24), _mm_load_ps(SFIm + 28)));
	_mm_store_ps(SFRe + 24, mR);
	_mm_store_ps(SFIm + 24, mI);
	R = SFRe[22] + SFRe[23];
	I = SFIm[22] + SFIm[23];
	SFRe[23] = SFRe[22] - SFRe[23];
	SFIm[23] = SFIm[22] - SFIm[23];
	SFRe[22] = R;
	SFIm[22] = I;
	R = SFRe[20] + SFRe[21];
	I = SFIm[20] + SFIm[21];
	SFRe[21] = SFRe[20] - SFRe[21];
	SFIm[21] = SFIm[20] - SFIm[21];
	SFRe[20] = R;
	SFIm[20] = I;
	Re0 = SFRe[16]; Im0 = SFIm[16];
	Re1 = SFRe[17]; Im1 = SFIm[17];
	Re2 = SFRe[18]; Im2 = SFIm[18];
	Re3 = SFRe[19]; Im3 = SFIm[19];
	SFRe[16] = Re0 + Re1; SFIm[16] = Im0 + Im1;
	SFRe[17] = Re0 - Re1; SFIm[17] = Im0 - Im1;
	SFRe[18] = Re2 + Re3; SFIm[18] = Im2 + Im3;
	SFRe[19] = Im2 - Im3; SFIm[19] = Re3 - Re2;
	RA = SFRe[16] + SFRe[18];
	IA = SFIm[16] + SFIm[18];
	SFRe[18] = SFRe[16] - SFRe[18];
	SFIm[18] = SFIm[16] - SFIm[18];
	SFRe[16] = RA;
	SFIm[16] = IA;
	RA = SFRe[17] + SFRe[19];
	IA = SFIm[17] + SFIm[19];
	SFRe[19] = SFRe[17] - SFRe[19];
	SFIm[19] = SFIm[17] - SFIm[19];
	SFRe[17] = RA;
	SFIm[17] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[20];
	I = SFIm[20];
	SFRe[20] = R * RF1 - I * IF1;
	SFIm[20] = R * IF1 + I * RF1;
	R = SFRe[22];
	I = SFIm[22];
	SFRe[22] = R * RF2 - I * IF2;
	SFIm[22] = R * IF2 + I * RF2;
	R = SFRe[22];
	I = SFIm[22];
	SFRe[22] = SFIm[20] - I;
	SFIm[22] = R - SFRe[20];
	SFRe[20] += R;
	SFIm[20] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[21];
	I = SFIm[21];
	SFRe[21] = R * RF1 - I * IF1;
	SFIm[21] = R * IF1 + I * RF1;
	R = SFRe[23];
	I = SFIm[23];
	SFRe[23] = R * RF2 - I * IF2;
	SFIm[23] = R * IF2 + I * RF2;
	R = SFRe[23];
	I = SFIm[23];
	SFRe[23] = SFIm[21] - I;
	SFIm[23] = R - SFRe[21];
	SFRe[21] += R;
	SFIm[21] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 16), _mm_load_ps(SFRe + 20));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 16), _mm_load_ps(SFIm + 20));
	_mm_store_ps(SFRe + 20, _mm_sub_ps(_mm_load_ps(SFRe + 16), _mm_load_ps(SFRe + 20)));
	_mm_store_ps(SFIm + 20, _mm_sub_ps(_mm_load_ps(SFIm + 16), _mm_load_ps(SFIm + 20)));
	_mm_store_ps(SFRe + 16, mR);
	_mm_store_ps(SFIm + 16, mI);
	Re0 = SFRe[12]; Im0 = SFIm[12];
	Re1 = SFRe[13]; Im1 = SFIm[13];
	Re2 = SFRe[14]; Im2 = SFIm[14];
	Re3 = SFRe[15]; Im3 = SFIm[15];
	SFRe[12] = Re0 + Re1; SFIm[12] = Im0 + Im1;
	SFRe[13] = Re0 - Re1; SFIm[13] = Im0 - Im1;
	SFRe[14] = Re2 + Re3; SFIm[14] = Im2 + Im3;
	SFRe[15] = Im2 - Im3; SFIm[15] = Re3 - Re2;
	RA = SFRe[12] + SFRe[14];
	IA = SFIm[12] + SFIm[14];
	SFRe[14] = SFRe[12] - SFRe[14];
	SFIm[14] = SFIm[12] - SFIm[14];
	SFRe[12] = RA;
	SFIm[12] = IA;
	RA = SFRe[13] + SFRe[15];
	IA = SFIm[13] + SFIm[15];
	SFRe[15] = SFRe[13] - SFRe[15];
	SFIm[15] = SFIm[13] - SFIm[15];
	SFRe[13] = RA;
	SFIm[13] = IA;
	Re0 = SFRe[8]; Im0 = SFIm[8];
	Re1 = SFRe[9]; Im1 = SFIm[9];
	Re2 = SFRe[10]; Im2 = SFIm[10];
	Re3 = SFRe[11]; Im3 = SFIm[11];
	SFRe[8] = Re0 + Re1; SFIm[8] = Im0 + Im1;
	SFRe[9] = Re0 - Re1; SFIm[9] = Im0 - Im1;
	SFRe[10] = Re2 + Re3; SFIm[10] = Im2 + Im3;
	SFRe[11] = Im2 - Im3; SFIm[11] = Re3 - Re2;
	RA = SFRe[8] + SFRe[10];
	IA = SFIm[8] + SFIm[10];
	SFRe[10] = SFRe[8] - SFRe[10];
	SFIm[10] = SFIm[8] - SFIm[10];
	SFRe[8] = RA;
	SFIm[8] = IA;
	RA = SFRe[9] + SFRe[11];
	IA = SFIm[9] + SFIm[11];
	SFRe[11] = SFRe[9] - SFRe[11];
	SFIm[11] = SFIm[9] - SFIm[11];
	SFRe[9] = RA;
	SFIm[9] = IA;
	R = SFRe[6] + SFRe[7];
	I = SFIm[6] + SFIm[7];
	SFRe[7] = SFRe[6] - SFRe[7];
	SFIm[7] = SFIm[6] - SFIm[7];
	SFRe[6] = R;
	SFIm[6] = I;
	R = SFRe[4] + SFRe[5];
	I = SFIm[4] + SFIm[5];
	SFRe[5] = SFRe[4] - SFRe[5];
	SFIm[5] = SFIm[4] - SFIm[5];
	SFRe[4] = R;
	SFIm[4] = I;
	Re0 = SFRe[0]; Im0 = SFIm[0];
	Re1 = SFRe[1]; Im1 = SFIm[1];
	Re2 = SFRe[2]; Im2 = SFIm[2];
	Re3 = SFRe[3]; Im3 = SFIm[3];
	SFRe[0] = Re0 + Re1; SFIm[0] = Im0 + Im1;
	SFRe[1] = Re0 - Re1; SFIm[1] = Im0 - Im1;
	SFRe[2] = Re2 + Re3; SFIm[2] = Im2 + Im3;
	SFRe[3] = Im2 - Im3; SFIm[3] = Re3 - Re2;
	RA = SFRe[0] + SFRe[2];
	IA = SFIm[0] + SFIm[2];
	SFRe[2] = SFRe[0] - SFRe[2];
	SFIm[2] = SFIm[0] - SFIm[2];
	SFRe[0] = RA;
	SFIm[0] = IA;
	RA = SFRe[1] + SFRe[3];
	IA = SFIm[1] + SFIm[3];
	SFRe[3] = SFRe[1] - SFRe[3];
	SFIm[3] = SFIm[1] - SFIm[3];
	SFRe[1] = RA;
	SFIm[1] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[4];
	I = SFIm[4];
	SFRe[4] = R * RF1 - I * IF1;
	SFIm[4] = R * IF1 + I * RF1;
	R = SFRe[6];
	I = SFIm[6];
	SFRe[6] = R * RF2 - I * IF2;
	SFIm[6] = R * IF2 + I * RF2;
	R = SFRe[6];
	I = SFIm[6];
	SFRe[6] = SFIm[4] - I;
	SFIm[6] = R - SFRe[4];
	SFRe[4] += R;
	SFIm[4] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[5];
	I = SFIm[5];
	SFRe[5] = R * RF1 - I * IF1;
	SFIm[5] = R * IF1 + I * RF1;
	R = SFRe[7];
	I = SFIm[7];
	SFRe[7] = R * RF2 - I * IF2;
	SFIm[7] = R * IF2 + I * RF2;
	R = SFRe[7];
	I = SFIm[7];
	SFRe[7] = SFIm[5] - I;
	SFIm[7] = R - SFRe[5];
	SFRe[5] += R;
	SFIm[5] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 0), _mm_load_ps(SFRe + 4));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 0), _mm_load_ps(SFIm + 4));
	_mm_store_ps(SFRe + 4, _mm_sub_ps(_mm_load_ps(SFRe + 0), _mm_load_ps(SFRe + 4)));
	_mm_store_ps(SFIm + 4, _mm_sub_ps(_mm_load_ps(SFIm + 0), _mm_load_ps(SFIm + 4)));
	_mm_store_ps(SFRe + 0, mR);
	_mm_store_ps(SFIm + 0, mI);
	mRF1 = _mm_set_ps(0.382712, 0.707133, 0.923896, 1.000000);
	mIF1 = _mm_set_ps(-0.923868, -0.707080, -0.382643, -0.000000);
	mRF2 = _mm_set_ps(-0.923896, -0.707098, 0.382712, 1.000000);
	mIF2 = _mm_set_ps(0.382643, -0.707116, -0.923868, -0.000000);
	mR = _mm_load_ps(SFRe + 8);
	mI = _mm_load_ps(SFIm + 8);
	_mm_store_ps(SFRe + 8, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 8, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 12);
	mI = _mm_load_ps(SFIm + 12);
	_mm_store_ps(SFRe + 12, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 12, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 12);
	mI = _mm_load_ps(SFIm + 12);
	_mm_store_ps(SFRe + 12, _mm_sub_ps(_mm_load_ps(SFIm + 8), mI));
	_mm_store_ps(SFIm + 12, _mm_sub_ps(mR, _mm_load_ps(SFRe + 8)));
	_mm_store_ps(SFRe + 8, _mm_add_ps(_mm_load_ps(SFRe + 8), mR));
	_mm_store_ps(SFIm + 8, _mm_add_ps(_mm_load_ps(SFIm + 8), mI));
	mR = _mm_add_ps(_mm_load_ps(SFRe + 0), _mm_load_ps(SFRe + 8));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 0), _mm_load_ps(SFIm + 8));
	_mm_store_ps(SFRe + 8, _mm_sub_ps(_mm_load_ps(SFRe + 0), _mm_load_ps(SFRe + 8)));
	_mm_store_ps(SFIm + 8, _mm_sub_ps(_mm_load_ps(SFIm + 0), _mm_load_ps(SFIm + 8)));
	_mm_store_ps(SFRe + 0, mR);
	_mm_store_ps(SFIm + 0, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 4), _mm_load_ps(SFRe + 12));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 4), _mm_load_ps(SFIm + 12));
	_mm_store_ps(SFRe + 12, _mm_sub_ps(_mm_load_ps(SFRe + 4), _mm_load_ps(SFRe + 12)));
	_mm_store_ps(SFIm + 12, _mm_sub_ps(_mm_load_ps(SFIm + 4), _mm_load_ps(SFIm + 12)));
	_mm_store_ps(SFRe + 4, mR);
	_mm_store_ps(SFIm + 4, mI);
	mRF1 = _mm_set_ps(0.831492, 0.923896, 0.980794, 1.000000);
	mIF1 = _mm_set_ps(-0.555536, -0.382643, -0.195044, -0.000000);
	mRF2 = _mm_set_ps(-0.195069, 0.382712, 0.831492, 1.000000);
	mIF2 = _mm_set_ps(-0.980790, -0.923868, -0.555536, -0.000000);
	mR = _mm_load_ps(SFRe + 16);
	mI = _mm_load_ps(SFIm + 16);
	_mm_store_ps(SFRe + 16, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 16, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 24);
	mI = _mm_load_ps(SFIm + 24);
	_mm_store_ps(SFRe + 24, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 24, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 24);
	mI = _mm_load_ps(SFIm + 24);
	_mm_store_ps(SFRe + 24, _mm_sub_ps(_mm_load_ps(SFIm + 16), mI));
	_mm_store_ps(SFIm + 24, _mm_sub_ps(mR, _mm_load_ps(SFRe + 16)));
	_mm_store_ps(SFRe + 16, _mm_add_ps(_mm_load_ps(SFRe + 16), mR));
	_mm_store_ps(SFIm + 16, _mm_add_ps(_mm_load_ps(SFIm + 16), mI));
	mRF1 = _mm_set_ps(0.195118, 0.382712, 0.555599, 0.707133);
	mIF1 = _mm_set_ps(-0.980780, -0.923868, -0.831451, -0.707080);
	mRF2 = _mm_set_ps(-0.555599, -0.923896, -0.980785, -0.707098);
	mIF2 = _mm_set_ps(0.831451, 0.382643, -0.195093, -0.707116);
	mR = _mm_load_ps(SFRe + 20);
	mI = _mm_load_ps(SFIm + 20);
	_mm_store_ps(SFRe + 20, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 20, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 28);
	mI = _mm_load_ps(SFIm + 28);
	_mm_store_ps(SFRe + 28, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 28, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 28);
	mI = _mm_load_ps(SFIm + 28);
	_mm_store_ps(SFRe + 28, _mm_sub_ps(_mm_load_ps(SFIm + 20), mI));
	_mm_store_ps(SFIm + 28, _mm_sub_ps(mR, _mm_load_ps(SFRe + 20)));
	_mm_store_ps(SFRe + 20, _mm_add_ps(_mm_load_ps(SFRe + 20), mR));
	_mm_store_ps(SFIm + 20, _mm_add_ps(_mm_load_ps(SFIm + 20), mI));
	mR = _mm_add_ps(_mm_load_ps(SFRe + 0), _mm_load_ps(SFRe + 16));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 0), _mm_load_ps(SFIm + 16));
	_mm_store_ps(SFRe + 16, _mm_sub_ps(_mm_load_ps(SFRe + 0), _mm_load_ps(SFRe + 16)));
	_mm_store_ps(SFIm + 16, _mm_sub_ps(_mm_load_ps(SFIm + 0), _mm_load_ps(SFIm + 16)));
	_mm_store_ps(SFRe + 0, mR);
	_mm_store_ps(SFIm + 0, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 4), _mm_load_ps(SFRe + 20));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 4), _mm_load_ps(SFIm + 20));
	_mm_store_ps(SFRe + 20, _mm_sub_ps(_mm_load_ps(SFRe + 4), _mm_load_ps(SFRe + 20)));
	_mm_store_ps(SFIm + 20, _mm_sub_ps(_mm_load_ps(SFIm + 4), _mm_load_ps(SFIm + 20)));
	_mm_store_ps(SFRe + 4, mR);
	_mm_store_ps(SFIm + 4, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 8), _mm_load_ps(SFRe + 24));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 8), _mm_load_ps(SFIm + 24));
	_mm_store_ps(SFRe + 24, _mm_sub_ps(_mm_load_ps(SFRe + 8), _mm_load_ps(SFRe + 24)));
	_mm_store_ps(SFIm + 24, _mm_sub_ps(_mm_load_ps(SFIm + 8), _mm_load_ps(SFIm + 24)));
	_mm_store_ps(SFRe + 8, mR);
	_mm_store_ps(SFIm + 8, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 12), _mm_load_ps(SFRe + 28));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 12), _mm_load_ps(SFIm + 28));
	_mm_store_ps(SFRe + 28, _mm_sub_ps(_mm_load_ps(SFRe + 12), _mm_load_ps(SFRe + 28)));
	_mm_store_ps(SFIm + 28, _mm_sub_ps(_mm_load_ps(SFIm + 12), _mm_load_ps(SFIm + 28)));
	_mm_store_ps(SFRe + 12, mR);
	_mm_store_ps(SFIm + 12, mI);
	mRF1 = _mm_set_ps(0.956946, 0.980794, 0.995187, 1.000000);
	mIF1 = _mm_set_ps(-0.290265, -0.195044, -0.097994, -0.000000);
	mRF2 = _mm_set_ps(0.634402, 0.831492, 0.956946, 1.000000);
	mIF2 = _mm_set_ps(-0.773004, -0.555536, -0.290265, -0.000000);
	mR = _mm_load_ps(SFRe + 32);
	mI = _mm_load_ps(SFIm + 32);
	_mm_store_ps(SFRe + 32, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 32, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 48);
	mI = _mm_load_ps(SFIm + 48);
	_mm_store_ps(SFRe + 48, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 48, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 48);
	mI = _mm_load_ps(SFIm + 48);
	_mm_store_ps(SFRe + 48, _mm_sub_ps(_mm_load_ps(SFIm + 32), mI));
	_mm_store_ps(SFIm + 48, _mm_sub_ps(mR, _mm_load_ps(SFRe + 32)));
	_mm_store_ps(SFRe + 32, _mm_add_ps(_mm_load_ps(SFRe + 32), mR));
	_mm_store_ps(SFIm + 32, _mm_add_ps(_mm_load_ps(SFIm + 32), mI));
	mRF1 = _mm_set_ps(0.773019, 0.831492, 0.881929, 0.923896);
	mIF1 = _mm_set_ps(-0.634382, -0.555536, -0.471382, -0.382643);
	mRF2 = _mm_set_ps(-0.471404, -0.195069, 0.098019, 0.382712);
	mIF2 = _mm_set_ps(-0.881918, -0.980790, -0.995185, -0.923868);
	mR = _mm_load_ps(SFRe + 36);
	mI = _mm_load_ps(SFIm + 36);
	_mm_store_ps(SFRe + 36, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 36, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 52);
	mI = _mm_load_ps(SFIm + 52);
	_mm_store_ps(SFRe + 52, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 52, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 52);
	mI = _mm_load_ps(SFIm + 52);
	_mm_store_ps(SFRe + 52, _mm_sub_ps(_mm_load_ps(SFIm + 36), mI));
	_mm_store_ps(SFIm + 52, _mm_sub_ps(mR, _mm_load_ps(SFRe + 36)));
	_mm_store_ps(SFRe + 36, _mm_add_ps(_mm_load_ps(SFRe + 36), mR));
	_mm_store_ps(SFIm + 36, _mm_add_ps(_mm_load_ps(SFIm + 36), mI));
	mRF1 = _mm_set_ps(0.471404, 0.555599, 0.634402, 0.707133);
	mIF1 = _mm_set_ps(-0.881918, -0.831451, -0.773004, -0.707080);
	mRF2 = _mm_set_ps(-0.995187, -0.980785, -0.881929, -0.707098);
	mIF2 = _mm_set_ps(0.097994, -0.195093, -0.471382, -0.707116);
	mR = _mm_load_ps(SFRe + 40);
	mI = _mm_load_ps(SFIm + 40);
	_mm_store_ps(SFRe + 40, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 40, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 56);
	mI = _mm_load_ps(SFIm + 56);
	_mm_store_ps(SFRe + 56, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 56, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 56);
	mI = _mm_load_ps(SFIm + 56);
	_mm_store_ps(SFRe + 56, _mm_sub_ps(_mm_load_ps(SFIm + 40), mI));
	_mm_store_ps(SFIm + 56, _mm_sub_ps(mR, _mm_load_ps(SFRe + 40)));
	_mm_store_ps(SFRe + 40, _mm_add_ps(_mm_load_ps(SFRe + 40), mR));
	_mm_store_ps(SFIm + 40, _mm_add_ps(_mm_load_ps(SFIm + 40), mI));
	mRF1 = _mm_set_ps(0.098019, 0.195118, 0.290289, 0.382712);
	mIF1 = _mm_set_ps(-0.995185, -0.980780, -0.956939, -0.923868);
	mRF2 = _mm_set_ps(-0.290289, -0.555599, -0.773019, -0.923896);
	mIF2 = _mm_set_ps(0.956939, 0.831451, 0.634382, 0.382643);
	mR = _mm_load_ps(SFRe + 44);
	mI = _mm_load_ps(SFIm + 44);
	_mm_store_ps(SFRe + 44, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 44, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 60);
	mI = _mm_load_ps(SFIm + 60);
	_mm_store_ps(SFRe + 60, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 60, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 60);
	mI = _mm_load_ps(SFIm + 60);
	_mm_store_ps(SFRe + 60, _mm_sub_ps(_mm_load_ps(SFIm + 44), mI));
	_mm_store_ps(SFIm + 60, _mm_sub_ps(mR, _mm_load_ps(SFRe + 44)));
	_mm_store_ps(SFRe + 44, _mm_add_ps(_mm_load_ps(SFRe + 44), mR));
	_mm_store_ps(SFIm + 44, _mm_add_ps(_mm_load_ps(SFIm + 44), mI));
	mR = _mm_add_ps(_mm_load_ps(SFRe + 0), _mm_load_ps(SFRe + 32));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 0), _mm_load_ps(SFIm + 32));
	_mm_store_ps(SFRe + 32, _mm_sub_ps(_mm_load_ps(SFRe + 0), _mm_load_ps(SFRe + 32)));
	_mm_store_ps(SFIm + 32, _mm_sub_ps(_mm_load_ps(SFIm + 0), _mm_load_ps(SFIm + 32)));
	_mm_store_ps(SFRe + 0, mR);
	_mm_store_ps(SFIm + 0, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 4), _mm_load_ps(SFRe + 36));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 4), _mm_load_ps(SFIm + 36));
	_mm_store_ps(SFRe + 36, _mm_sub_ps(_mm_load_ps(SFRe + 4), _mm_load_ps(SFRe + 36)));
	_mm_store_ps(SFIm + 36, _mm_sub_ps(_mm_load_ps(SFIm + 4), _mm_load_ps(SFIm + 36)));
	_mm_store_ps(SFRe + 4, mR);
	_mm_store_ps(SFIm + 4, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 8), _mm_load_ps(SFRe + 40));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 8), _mm_load_ps(SFIm + 40));
	_mm_store_ps(SFRe + 40, _mm_sub_ps(_mm_load_ps(SFRe + 8), _mm_load_ps(SFRe + 40)));
	_mm_store_ps(SFIm + 40, _mm_sub_ps(_mm_load_ps(SFIm + 8), _mm_load_ps(SFIm + 40)));
	_mm_store_ps(SFRe + 8, mR);
	_mm_store_ps(SFIm + 8, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 12), _mm_load_ps(SFRe + 44));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 12), _mm_load_ps(SFIm + 44));
	_mm_store_ps(SFRe + 44, _mm_sub_ps(_mm_load_ps(SFRe + 12), _mm_load_ps(SFRe + 44)));
	_mm_store_ps(SFIm + 44, _mm_sub_ps(_mm_load_ps(SFIm + 12), _mm_load_ps(SFIm + 44)));
	_mm_store_ps(SFRe + 12, mR);
	_mm_store_ps(SFIm + 12, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 16), _mm_load_ps(SFRe + 48));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 16), _mm_load_ps(SFIm + 48));
	_mm_store_ps(SFRe + 48, _mm_sub_ps(_mm_load_ps(SFRe + 16), _mm_load_ps(SFRe + 48)));
	_mm_store_ps(SFIm + 48, _mm_sub_ps(_mm_load_ps(SFIm + 16), _mm_load_ps(SFIm + 48)));
	_mm_store_ps(SFRe + 16, mR);
	_mm_store_ps(SFIm + 16, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 20), _mm_load_ps(SFRe + 52));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 20), _mm_load_ps(SFIm + 52));
	_mm_store_ps(SFRe + 52, _mm_sub_ps(_mm_load_ps(SFRe + 20), _mm_load_ps(SFRe + 52)));
	_mm_store_ps(SFIm + 52, _mm_sub_ps(_mm_load_ps(SFIm + 20), _mm_load_ps(SFIm + 52)));
	_mm_store_ps(SFRe + 20, mR);
	_mm_store_ps(SFIm + 20, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 24), _mm_load_ps(SFRe + 56));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 24), _mm_load_ps(SFIm + 56));
	_mm_store_ps(SFRe + 56, _mm_sub_ps(_mm_load_ps(SFRe + 24), _mm_load_ps(SFRe + 56)));
	_mm_store_ps(SFIm + 56, _mm_sub_ps(_mm_load_ps(SFIm + 24), _mm_load_ps(SFIm + 56)));
	_mm_store_ps(SFRe + 24, mR);
	_mm_store_ps(SFIm + 24, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 28), _mm_load_ps(SFRe + 60));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 28), _mm_load_ps(SFIm + 60));
	_mm_store_ps(SFRe + 60, _mm_sub_ps(_mm_load_ps(SFRe + 28), _mm_load_ps(SFRe + 60)));
	_mm_store_ps(SFIm + 60, _mm_sub_ps(_mm_load_ps(SFIm + 28), _mm_load_ps(SFIm + 60)));
	_mm_store_ps(SFRe + 28, mR);
	_mm_store_ps(SFIm + 28, mI);
	mRF1 = _mm_set_ps(0.989178, 0.995187, 0.998797, 1.000000);
	mIF1 = _mm_set_ps(-0.146720, -0.097994, -0.049031, -0.000000);
	mRF2 = _mm_set_ps(0.904002, 0.956946, 0.989178, 1.000000);
	mIF2 = _mm_set_ps(-0.427528, -0.290265, -0.146720, -0.000000);
	mR = _mm_load_ps(SFRe + 64);
	mI = _mm_load_ps(SFIm + 64);
	_mm_store_ps(SFRe + 64, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 64, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 96);
	mI = _mm_load_ps(SFIm + 96);
	_mm_store_ps(SFRe + 96, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 96, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 96);
	mI = _mm_load_ps(SFIm + 96);
	_mm_store_ps(SFRe + 96, _mm_sub_ps(_mm_load_ps(SFIm + 64), mI));
	_mm_store_ps(SFIm + 96, _mm_sub_ps(mR, _mm_load_ps(SFRe + 64)));
	_mm_store_ps(SFRe + 64, _mm_add_ps(_mm_load_ps(SFRe + 64), mR));
	_mm_store_ps(SFIm + 64, _mm_add_ps(_mm_load_ps(SFIm + 64), mI));
	mRF1 = _mm_set_ps(0.941546, 0.956946, 0.970039, 0.980794);
	mIF1 = _mm_set_ps(-0.336883, -0.290265, -0.242948, -0.195044);
	mRF2 = _mm_set_ps(0.514121, 0.634402, 0.740952, 0.831492);
	mIF2 = _mm_set_ps(-0.857718, -0.773004, -0.671558, -0.555536);
	mR = _mm_load_ps(SFRe + 68);
	mI = _mm_load_ps(SFIm + 68);
	_mm_store_ps(SFRe + 68, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 68, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 100);
	mI = _mm_load_ps(SFIm + 100);
	_mm_store_ps(SFRe + 100, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 100, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 100);
	mI = _mm_load_ps(SFIm + 100);
	_mm_store_ps(SFRe + 100, _mm_sub_ps(_mm_load_ps(SFIm + 68), mI));
	_mm_store_ps(SFIm + 100, _mm_sub_ps(mR, _mm_load_ps(SFRe + 68)));
	_mm_store_ps(SFRe + 68, _mm_add_ps(_mm_load_ps(SFRe + 68), mR));
	_mm_store_ps(SFIm + 68, _mm_add_ps(_mm_load_ps(SFIm + 68), mI));
	mRF1 = _mm_set_ps(0.857731, 0.881929, 0.904002, 0.923896);
	mIF1 = _mm_set_ps(-0.514099, -0.471382, -0.427528, -0.382643);
	mRF2 = _mm_set_ps(-0.049056, 0.098019, 0.242972, 0.382712);
	mIF2 = _mm_set_ps(-0.998796, -0.995185, -0.970033, -0.923868);
	mR = _mm_load_ps(SFRe + 72);
	mI = _mm_load_ps(SFIm + 72);
	_mm_store_ps(SFRe + 72, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 72, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 104);
	mI = _mm_load_ps(SFIm + 104);
	_mm_store_ps(SFRe + 104, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 104, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 104);
	mI = _mm_load_ps(SFIm + 104);
	_mm_store_ps(SFRe + 104, _mm_sub_ps(_mm_load_ps(SFIm + 72), mI));
	_mm_store_ps(SFIm + 104, _mm_sub_ps(mR, _mm_load_ps(SFRe + 72)));
	_mm_store_ps(SFRe + 72, _mm_add_ps(_mm_load_ps(SFRe + 72), mR));
	_mm_store_ps(SFIm + 72, _mm_add_ps(_mm_load_ps(SFIm + 72), mI));
	mRF1 = _mm_set_ps(0.740952, 0.773019, 0.803224, 0.831492);
	mIF1 = _mm_set_ps(-0.671558, -0.634382, -0.595677, -0.555536);
	mRF2 = _mm_set_ps(-0.595697, -0.471404, -0.336907, -0.195069);
	mIF2 = _mm_set_ps(-0.803209, -0.881918, -0.941538, -0.980790);
	mR = _mm_load_ps(SFRe + 76);
	mI = _mm_load_ps(SFIm + 76);
	_mm_store_ps(SFRe + 76, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 76, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 108);
	mI = _mm_load_ps(SFIm + 108);
	_mm_store_ps(SFRe + 108, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 108, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 108);
	mI = _mm_load_ps(SFIm + 108);
	_mm_store_ps(SFRe + 108, _mm_sub_ps(_mm_load_ps(SFIm + 76), mI));
	_mm_store_ps(SFIm + 108, _mm_sub_ps(mR, _mm_load_ps(SFRe + 76)));
	_mm_store_ps(SFRe + 76, _mm_add_ps(_mm_load_ps(SFRe + 76), mR));
	_mm_store_ps(SFIm + 76, _mm_add_ps(_mm_load_ps(SFIm + 76), mI));
	mRF1 = _mm_set_ps(0.595697, 0.634402, 0.671577, 0.707133);
	mIF1 = _mm_set_ps(-0.803209, -0.773004, -0.740935, -0.707080);
	mRF2 = _mm_set_ps(-0.941546, -0.881929, -0.803224, -0.707098);
	mIF2 = _mm_set_ps(-0.336883, -0.471382, -0.595677, -0.707116);
	mR = _mm_load_ps(SFRe + 80);
	mI = _mm_load_ps(SFIm + 80);
	_mm_store_ps(SFRe + 80, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 80, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 112);
	mI = _mm_load_ps(SFIm + 112);
	_mm_store_ps(SFRe + 112, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 112, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 112);
	mI = _mm_load_ps(SFIm + 112);
	_mm_store_ps(SFRe + 112, _mm_sub_ps(_mm_load_ps(SFIm + 80), mI));
	_mm_store_ps(SFIm + 112, _mm_sub_ps(mR, _mm_load_ps(SFRe + 80)));
	_mm_store_ps(SFRe + 80, _mm_add_ps(_mm_load_ps(SFRe + 80), mR));
	_mm_store_ps(SFIm + 80, _mm_add_ps(_mm_load_ps(SFIm + 80), mI));
	mRF1 = _mm_set_ps(0.427550, 0.471404, 0.514121, 0.555599);
	mIF1 = _mm_set_ps(-0.903992, -0.881918, -0.857718, -0.831451);
	mRF2 = _mm_set_ps(-0.970039, -0.995187, -0.998797, -0.980785);
	mIF2 = _mm_set_ps(0.242948, 0.097994, -0.049031, -0.195093);
	mR = _mm_load_ps(SFRe + 84);
	mI = _mm_load_ps(SFIm + 84);
	_mm_store_ps(SFRe + 84, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 84, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 116);
	mI = _mm_load_ps(SFIm + 116);
	_mm_store_ps(SFRe + 116, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 116, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 116);
	mI = _mm_load_ps(SFIm + 116);
	_mm_store_ps(SFRe + 116, _mm_sub_ps(_mm_load_ps(SFIm + 84), mI));
	_mm_store_ps(SFIm + 116, _mm_sub_ps(mR, _mm_load_ps(SFRe + 84)));
	_mm_store_ps(SFRe + 84, _mm_add_ps(_mm_load_ps(SFRe + 84), mR));
	_mm_store_ps(SFIm + 84, _mm_add_ps(_mm_load_ps(SFIm + 84), mI));
	mRF1 = _mm_set_ps(0.242972, 0.290289, 0.336907, 0.382712);
	mIF1 = _mm_set_ps(-0.970033, -0.956939, -0.941538, -0.923868);
	mRF2 = _mm_set_ps(-0.671577, -0.773019, -0.857731, -0.923896);
	mIF2 = _mm_set_ps(0.740935, 0.634382, 0.514099, 0.382643);
	mR = _mm_load_ps(SFRe + 88);
	mI = _mm_load_ps(SFIm + 88);
	_mm_store_ps(SFRe + 88, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 88, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 120);
	mI = _mm_load_ps(SFIm + 120);
	_mm_store_ps(SFRe + 120, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 120, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 120);
	mI = _mm_load_ps(SFIm + 120);
	_mm_store_ps(SFRe + 120, _mm_sub_ps(_mm_load_ps(SFIm + 88), mI));
	_mm_store_ps(SFIm + 120, _mm_sub_ps(mR, _mm_load_ps(SFRe + 88)));
	_mm_store_ps(SFRe + 88, _mm_add_ps(_mm_load_ps(SFRe + 88), mR));
	_mm_store_ps(SFIm + 88, _mm_add_ps(_mm_load_ps(SFIm + 88), mI));
	mRF1 = _mm_set_ps(0.049056, 0.098019, 0.146745, 0.195118);
	mIF1 = _mm_set_ps(-0.998796, -0.995185, -0.989174, -0.980780);
	mRF2 = _mm_set_ps(-0.146745, -0.290289, -0.427550, -0.555599);
	mIF2 = _mm_set_ps(0.989174, 0.956939, 0.903992, 0.831451);
	mR = _mm_load_ps(SFRe + 92);
	mI = _mm_load_ps(SFIm + 92);
	_mm_store_ps(SFRe + 92, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 92, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 124);
	mI = _mm_load_ps(SFIm + 124);
	_mm_store_ps(SFRe + 124, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 124, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 124);
	mI = _mm_load_ps(SFIm + 124);
	_mm_store_ps(SFRe + 124, _mm_sub_ps(_mm_load_ps(SFIm + 92), mI));
	_mm_store_ps(SFIm + 124, _mm_sub_ps(mR, _mm_load_ps(SFRe + 92)));
	_mm_store_ps(SFRe + 92, _mm_add_ps(_mm_load_ps(SFRe + 92), mR));
	_mm_store_ps(SFIm + 92, _mm_add_ps(_mm_load_ps(SFIm + 92), mI));
	mR = _mm_add_ps(_mm_load_ps(SFRe + 0), _mm_load_ps(SFRe + 64));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 0), _mm_load_ps(SFIm + 64));
	_mm_store_ps(SFRe + 64, _mm_sub_ps(_mm_load_ps(SFRe + 0), _mm_load_ps(SFRe + 64)));
	_mm_store_ps(SFIm + 64, _mm_sub_ps(_mm_load_ps(SFIm + 0), _mm_load_ps(SFIm + 64)));
	_mm_store_ps(SFRe + 0, mR);
	_mm_store_ps(SFIm + 0, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 4), _mm_load_ps(SFRe + 68));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 4), _mm_load_ps(SFIm + 68));
	_mm_store_ps(SFRe + 68, _mm_sub_ps(_mm_load_ps(SFRe + 4), _mm_load_ps(SFRe + 68)));
	_mm_store_ps(SFIm + 68, _mm_sub_ps(_mm_load_ps(SFIm + 4), _mm_load_ps(SFIm + 68)));
	_mm_store_ps(SFRe + 4, mR);
	_mm_store_ps(SFIm + 4, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 8), _mm_load_ps(SFRe + 72));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 8), _mm_load_ps(SFIm + 72));
	_mm_store_ps(SFRe + 72, _mm_sub_ps(_mm_load_ps(SFRe + 8), _mm_load_ps(SFRe + 72)));
	_mm_store_ps(SFIm + 72, _mm_sub_ps(_mm_load_ps(SFIm + 8), _mm_load_ps(SFIm + 72)));
	_mm_store_ps(SFRe + 8, mR);
	_mm_store_ps(SFIm + 8, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 12), _mm_load_ps(SFRe + 76));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 12), _mm_load_ps(SFIm + 76));
	_mm_store_ps(SFRe + 76, _mm_sub_ps(_mm_load_ps(SFRe + 12), _mm_load_ps(SFRe + 76)));
	_mm_store_ps(SFIm + 76, _mm_sub_ps(_mm_load_ps(SFIm + 12), _mm_load_ps(SFIm + 76)));
	_mm_store_ps(SFRe + 12, mR);
	_mm_store_ps(SFIm + 12, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 16), _mm_load_ps(SFRe + 80));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 16), _mm_load_ps(SFIm + 80));
	_mm_store_ps(SFRe + 80, _mm_sub_ps(_mm_load_ps(SFRe + 16), _mm_load_ps(SFRe + 80)));
	_mm_store_ps(SFIm + 80, _mm_sub_ps(_mm_load_ps(SFIm + 16), _mm_load_ps(SFIm + 80)));
	_mm_store_ps(SFRe + 16, mR);
	_mm_store_ps(SFIm + 16, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 20), _mm_load_ps(SFRe + 84));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 20), _mm_load_ps(SFIm + 84));
	_mm_store_ps(SFRe + 84, _mm_sub_ps(_mm_load_ps(SFRe + 20), _mm_load_ps(SFRe + 84)));
	_mm_store_ps(SFIm + 84, _mm_sub_ps(_mm_load_ps(SFIm + 20), _mm_load_ps(SFIm + 84)));
	_mm_store_ps(SFRe + 20, mR);
	_mm_store_ps(SFIm + 20, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 24), _mm_load_ps(SFRe + 88));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 24), _mm_load_ps(SFIm + 88));
	_mm_store_ps(SFRe + 88, _mm_sub_ps(_mm_load_ps(SFRe + 24), _mm_load_ps(SFRe + 88)));
	_mm_store_ps(SFIm + 88, _mm_sub_ps(_mm_load_ps(SFIm + 24), _mm_load_ps(SFIm + 88)));
	_mm_store_ps(SFRe + 24, mR);
	_mm_store_ps(SFIm + 24, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 28), _mm_load_ps(SFRe + 92));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 28), _mm_load_ps(SFIm + 92));
	_mm_store_ps(SFRe + 92, _mm_sub_ps(_mm_load_ps(SFRe + 28), _mm_load_ps(SFRe + 92)));
	_mm_store_ps(SFIm + 92, _mm_sub_ps(_mm_load_ps(SFIm + 28), _mm_load_ps(SFIm + 92)));
	_mm_store_ps(SFRe + 28, mR);
	_mm_store_ps(SFIm + 28, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 32), _mm_load_ps(SFRe + 96));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 32), _mm_load_ps(SFIm + 96));
	_mm_store_ps(SFRe + 96, _mm_sub_ps(_mm_load_ps(SFRe + 32), _mm_load_ps(SFRe + 96)));
	_mm_store_ps(SFIm + 96, _mm_sub_ps(_mm_load_ps(SFIm + 32), _mm_load_ps(SFIm + 96)));
	_mm_store_ps(SFRe + 32, mR);
	_mm_store_ps(SFIm + 32, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 36), _mm_load_ps(SFRe + 100));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 36), _mm_load_ps(SFIm + 100));
	_mm_store_ps(SFRe + 100, _mm_sub_ps(_mm_load_ps(SFRe + 36), _mm_load_ps(SFRe + 100)));
	_mm_store_ps(SFIm + 100, _mm_sub_ps(_mm_load_ps(SFIm + 36), _mm_load_ps(SFIm + 100)));
	_mm_store_ps(SFRe + 36, mR);
	_mm_store_ps(SFIm + 36, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 40), _mm_load_ps(SFRe + 104));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 40), _mm_load_ps(SFIm + 104));
	_mm_store_ps(SFRe + 104, _mm_sub_ps(_mm_load_ps(SFRe + 40), _mm_load_ps(SFRe + 104)));
	_mm_store_ps(SFIm + 104, _mm_sub_ps(_mm_load_ps(SFIm + 40), _mm_load_ps(SFIm + 104)));
	_mm_store_ps(SFRe + 40, mR);
	_mm_store_ps(SFIm + 40, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 44), _mm_load_ps(SFRe + 108));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 44), _mm_load_ps(SFIm + 108));
	_mm_store_ps(SFRe + 108, _mm_sub_ps(_mm_load_ps(SFRe + 44), _mm_load_ps(SFRe + 108)));
	_mm_store_ps(SFIm + 108, _mm_sub_ps(_mm_load_ps(SFIm + 44), _mm_load_ps(SFIm + 108)));
	_mm_store_ps(SFRe + 44, mR);
	_mm_store_ps(SFIm + 44, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 48), _mm_load_ps(SFRe + 112));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 48), _mm_load_ps(SFIm + 112));
	_mm_store_ps(SFRe + 112, _mm_sub_ps(_mm_load_ps(SFRe + 48), _mm_load_ps(SFRe + 112)));
	_mm_store_ps(SFIm + 112, _mm_sub_ps(_mm_load_ps(SFIm + 48), _mm_load_ps(SFIm + 112)));
	_mm_store_ps(SFRe + 48, mR);
	_mm_store_ps(SFIm + 48, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 52), _mm_load_ps(SFRe + 116));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 52), _mm_load_ps(SFIm + 116));
	_mm_store_ps(SFRe + 116, _mm_sub_ps(_mm_load_ps(SFRe + 52), _mm_load_ps(SFRe + 116)));
	_mm_store_ps(SFIm + 116, _mm_sub_ps(_mm_load_ps(SFIm + 52), _mm_load_ps(SFIm + 116)));
	_mm_store_ps(SFRe + 52, mR);
	_mm_store_ps(SFIm + 52, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 56), _mm_load_ps(SFRe + 120));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 56), _mm_load_ps(SFIm + 120));
	_mm_store_ps(SFRe + 120, _mm_sub_ps(_mm_load_ps(SFRe + 56), _mm_load_ps(SFRe + 120)));
	_mm_store_ps(SFIm + 120, _mm_sub_ps(_mm_load_ps(SFIm + 56), _mm_load_ps(SFIm + 120)));
	_mm_store_ps(SFRe + 56, mR);
	_mm_store_ps(SFIm + 56, mI);
	mR = _mm_add_ps(_mm_load_ps(SFRe + 60), _mm_load_ps(SFRe + 124));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 60), _mm_load_ps(SFIm + 124));
	_mm_store_ps(SFRe + 124, _mm_sub_ps(_mm_load_ps(SFRe + 60), _mm_load_ps(SFRe + 124)));
	_mm_store_ps(SFIm + 124, _mm_sub_ps(_mm_load_ps(SFIm + 60), _mm_load_ps(SFIm + 124)));
	_mm_store_ps(SFRe + 60, mR);
	_mm_store_ps(SFIm + 60, mI);
}
#else
//AVX
void StaticFFT_7()
{
	float Re0, Re1, Re2, Re3;
	float Im0, Im1, Im2, Im3;
	float RA, IA;
	float RF1, IF1, RF2, IF2;
	float R, I;
	__m128 mRF1, mIF1, mRF2, mIF2;
	__m128 mR, mI;
	__m256 m256RF1, m256IF1, m256RF2, m256IF2;
	__m256 m256R, m256I;
	R = SFRe[126] + SFRe[127];
	I = SFIm[126] + SFIm[127];
	SFRe[127] = SFRe[126] - SFRe[127];
	SFIm[127] = SFIm[126] - SFIm[127];
	SFRe[126] = R;
	SFIm[126] = I;
	R = SFRe[124] + SFRe[125];
	I = SFIm[124] + SFIm[125];
	SFRe[125] = SFRe[124] - SFRe[125];
	SFIm[125] = SFIm[124] - SFIm[125];
	SFRe[124] = R;
	SFIm[124] = I;
	Re0 = SFRe[120]; Im0 = SFIm[120];
	Re1 = SFRe[121]; Im1 = SFIm[121];
	Re2 = SFRe[122]; Im2 = SFIm[122];
	Re3 = SFRe[123]; Im3 = SFIm[123];
	SFRe[120] = Re0 + Re1; SFIm[120] = Im0 + Im1;
	SFRe[121] = Re0 - Re1; SFIm[121] = Im0 - Im1;
	SFRe[122] = Re2 + Re3; SFIm[122] = Im2 + Im3;
	SFRe[123] = Im2 - Im3; SFIm[123] = Re3 - Re2;
	RA = SFRe[120] + SFRe[122];
	IA = SFIm[120] + SFIm[122];
	SFRe[122] = SFRe[120] - SFRe[122];
	SFIm[122] = SFIm[120] - SFIm[122];
	SFRe[120] = RA;
	SFIm[120] = IA;
	RA = SFRe[121] + SFRe[123];
	IA = SFIm[121] + SFIm[123];
	SFRe[123] = SFRe[121] - SFRe[123];
	SFIm[123] = SFIm[121] - SFIm[123];
	SFRe[121] = RA;
	SFIm[121] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[124];
	I = SFIm[124];
	SFRe[124] = R * RF1 - I * IF1;
	SFIm[124] = R * IF1 + I * RF1;
	R = SFRe[126];
	I = SFIm[126];
	SFRe[126] = R * RF2 - I * IF2;
	SFIm[126] = R * IF2 + I * RF2;
	R = SFRe[126];
	I = SFIm[126];
	SFRe[126] = SFIm[124] - I;
	SFIm[126] = R - SFRe[124];
	SFRe[124] += R;
	SFIm[124] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[125];
	I = SFIm[125];
	SFRe[125] = R * RF1 - I * IF1;
	SFIm[125] = R * IF1 + I * RF1;
	R = SFRe[127];
	I = SFIm[127];
	SFRe[127] = R * RF2 - I * IF2;
	SFIm[127] = R * IF2 + I * RF2;
	R = SFRe[127];
	I = SFIm[127];
	SFRe[127] = SFIm[125] - I;
	SFIm[127] = R - SFRe[125];
	SFRe[125] += R;
	SFIm[125] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 120), _mm_load_ps(SFRe + 124));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 120), _mm_load_ps(SFIm + 124));
	_mm_store_ps(SFRe + 124, _mm_sub_ps(_mm_load_ps(SFRe + 120), _mm_load_ps(SFRe + 124)));
	_mm_store_ps(SFIm + 124, _mm_sub_ps(_mm_load_ps(SFIm + 120), _mm_load_ps(SFIm + 124)));
	_mm_store_ps(SFRe + 120, mR);
	_mm_store_ps(SFIm + 120, mI);
	R = SFRe[118] + SFRe[119];
	I = SFIm[118] + SFIm[119];
	SFRe[119] = SFRe[118] - SFRe[119];
	SFIm[119] = SFIm[118] - SFIm[119];
	SFRe[118] = R;
	SFIm[118] = I;
	R = SFRe[116] + SFRe[117];
	I = SFIm[116] + SFIm[117];
	SFRe[117] = SFRe[116] - SFRe[117];
	SFIm[117] = SFIm[116] - SFIm[117];
	SFRe[116] = R;
	SFIm[116] = I;
	Re0 = SFRe[112]; Im0 = SFIm[112];
	Re1 = SFRe[113]; Im1 = SFIm[113];
	Re2 = SFRe[114]; Im2 = SFIm[114];
	Re3 = SFRe[115]; Im3 = SFIm[115];
	SFRe[112] = Re0 + Re1; SFIm[112] = Im0 + Im1;
	SFRe[113] = Re0 - Re1; SFIm[113] = Im0 - Im1;
	SFRe[114] = Re2 + Re3; SFIm[114] = Im2 + Im3;
	SFRe[115] = Im2 - Im3; SFIm[115] = Re3 - Re2;
	RA = SFRe[112] + SFRe[114];
	IA = SFIm[112] + SFIm[114];
	SFRe[114] = SFRe[112] - SFRe[114];
	SFIm[114] = SFIm[112] - SFIm[114];
	SFRe[112] = RA;
	SFIm[112] = IA;
	RA = SFRe[113] + SFRe[115];
	IA = SFIm[113] + SFIm[115];
	SFRe[115] = SFRe[113] - SFRe[115];
	SFIm[115] = SFIm[113] - SFIm[115];
	SFRe[113] = RA;
	SFIm[113] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[116];
	I = SFIm[116];
	SFRe[116] = R * RF1 - I * IF1;
	SFIm[116] = R * IF1 + I * RF1;
	R = SFRe[118];
	I = SFIm[118];
	SFRe[118] = R * RF2 - I * IF2;
	SFIm[118] = R * IF2 + I * RF2;
	R = SFRe[118];
	I = SFIm[118];
	SFRe[118] = SFIm[116] - I;
	SFIm[118] = R - SFRe[116];
	SFRe[116] += R;
	SFIm[116] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[117];
	I = SFIm[117];
	SFRe[117] = R * RF1 - I * IF1;
	SFIm[117] = R * IF1 + I * RF1;
	R = SFRe[119];
	I = SFIm[119];
	SFRe[119] = R * RF2 - I * IF2;
	SFIm[119] = R * IF2 + I * RF2;
	R = SFRe[119];
	I = SFIm[119];
	SFRe[119] = SFIm[117] - I;
	SFIm[119] = R - SFRe[117];
	SFRe[117] += R;
	SFIm[117] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 112), _mm_load_ps(SFRe + 116));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 112), _mm_load_ps(SFIm + 116));
	_mm_store_ps(SFRe + 116, _mm_sub_ps(_mm_load_ps(SFRe + 112), _mm_load_ps(SFRe + 116)));
	_mm_store_ps(SFIm + 116, _mm_sub_ps(_mm_load_ps(SFIm + 112), _mm_load_ps(SFIm + 116)));
	_mm_store_ps(SFRe + 112, mR);
	_mm_store_ps(SFIm + 112, mI);
	Re0 = SFRe[108]; Im0 = SFIm[108];
	Re1 = SFRe[109]; Im1 = SFIm[109];
	Re2 = SFRe[110]; Im2 = SFIm[110];
	Re3 = SFRe[111]; Im3 = SFIm[111];
	SFRe[108] = Re0 + Re1; SFIm[108] = Im0 + Im1;
	SFRe[109] = Re0 - Re1; SFIm[109] = Im0 - Im1;
	SFRe[110] = Re2 + Re3; SFIm[110] = Im2 + Im3;
	SFRe[111] = Im2 - Im3; SFIm[111] = Re3 - Re2;
	RA = SFRe[108] + SFRe[110];
	IA = SFIm[108] + SFIm[110];
	SFRe[110] = SFRe[108] - SFRe[110];
	SFIm[110] = SFIm[108] - SFIm[110];
	SFRe[108] = RA;
	SFIm[108] = IA;
	RA = SFRe[109] + SFRe[111];
	IA = SFIm[109] + SFIm[111];
	SFRe[111] = SFRe[109] - SFRe[111];
	SFIm[111] = SFIm[109] - SFIm[111];
	SFRe[109] = RA;
	SFIm[109] = IA;
	Re0 = SFRe[104]; Im0 = SFIm[104];
	Re1 = SFRe[105]; Im1 = SFIm[105];
	Re2 = SFRe[106]; Im2 = SFIm[106];
	Re3 = SFRe[107]; Im3 = SFIm[107];
	SFRe[104] = Re0 + Re1; SFIm[104] = Im0 + Im1;
	SFRe[105] = Re0 - Re1; SFIm[105] = Im0 - Im1;
	SFRe[106] = Re2 + Re3; SFIm[106] = Im2 + Im3;
	SFRe[107] = Im2 - Im3; SFIm[107] = Re3 - Re2;
	RA = SFRe[104] + SFRe[106];
	IA = SFIm[104] + SFIm[106];
	SFRe[106] = SFRe[104] - SFRe[106];
	SFIm[106] = SFIm[104] - SFIm[106];
	SFRe[104] = RA;
	SFIm[104] = IA;
	RA = SFRe[105] + SFRe[107];
	IA = SFIm[105] + SFIm[107];
	SFRe[107] = SFRe[105] - SFRe[107];
	SFIm[107] = SFIm[105] - SFIm[107];
	SFRe[105] = RA;
	SFIm[105] = IA;
	R = SFRe[102] + SFRe[103];
	I = SFIm[102] + SFIm[103];
	SFRe[103] = SFRe[102] - SFRe[103];
	SFIm[103] = SFIm[102] - SFIm[103];
	SFRe[102] = R;
	SFIm[102] = I;
	R = SFRe[100] + SFRe[101];
	I = SFIm[100] + SFIm[101];
	SFRe[101] = SFRe[100] - SFRe[101];
	SFIm[101] = SFIm[100] - SFIm[101];
	SFRe[100] = R;
	SFIm[100] = I;
	Re0 = SFRe[96]; Im0 = SFIm[96];
	Re1 = SFRe[97]; Im1 = SFIm[97];
	Re2 = SFRe[98]; Im2 = SFIm[98];
	Re3 = SFRe[99]; Im3 = SFIm[99];
	SFRe[96] = Re0 + Re1; SFIm[96] = Im0 + Im1;
	SFRe[97] = Re0 - Re1; SFIm[97] = Im0 - Im1;
	SFRe[98] = Re2 + Re3; SFIm[98] = Im2 + Im3;
	SFRe[99] = Im2 - Im3; SFIm[99] = Re3 - Re2;
	RA = SFRe[96] + SFRe[98];
	IA = SFIm[96] + SFIm[98];
	SFRe[98] = SFRe[96] - SFRe[98];
	SFIm[98] = SFIm[96] - SFIm[98];
	SFRe[96] = RA;
	SFIm[96] = IA;
	RA = SFRe[97] + SFRe[99];
	IA = SFIm[97] + SFIm[99];
	SFRe[99] = SFRe[97] - SFRe[99];
	SFIm[99] = SFIm[97] - SFIm[99];
	SFRe[97] = RA;
	SFIm[97] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[100];
	I = SFIm[100];
	SFRe[100] = R * RF1 - I * IF1;
	SFIm[100] = R * IF1 + I * RF1;
	R = SFRe[102];
	I = SFIm[102];
	SFRe[102] = R * RF2 - I * IF2;
	SFIm[102] = R * IF2 + I * RF2;
	R = SFRe[102];
	I = SFIm[102];
	SFRe[102] = SFIm[100] - I;
	SFIm[102] = R - SFRe[100];
	SFRe[100] += R;
	SFIm[100] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[101];
	I = SFIm[101];
	SFRe[101] = R * RF1 - I * IF1;
	SFIm[101] = R * IF1 + I * RF1;
	R = SFRe[103];
	I = SFIm[103];
	SFRe[103] = R * RF2 - I * IF2;
	SFIm[103] = R * IF2 + I * RF2;
	R = SFRe[103];
	I = SFIm[103];
	SFRe[103] = SFIm[101] - I;
	SFIm[103] = R - SFRe[101];
	SFRe[101] += R;
	SFIm[101] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 96), _mm_load_ps(SFRe + 100));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 96), _mm_load_ps(SFIm + 100));
	_mm_store_ps(SFRe + 100, _mm_sub_ps(_mm_load_ps(SFRe + 96), _mm_load_ps(SFRe + 100)));
	_mm_store_ps(SFIm + 100, _mm_sub_ps(_mm_load_ps(SFIm + 96), _mm_load_ps(SFIm + 100)));
	_mm_store_ps(SFRe + 96, mR);
	_mm_store_ps(SFIm + 96, mI);
	mRF1 = _mm_set_ps(0.382712, 0.707133, 0.923896, 1.000000);
	mIF1 = _mm_set_ps(-0.923868, -0.707080, -0.382643, -0.000000);
	mRF2 = _mm_set_ps(-0.923896, -0.707098, 0.382712, 1.000000);
	mIF2 = _mm_set_ps(0.382643, -0.707116, -0.923868, -0.000000);
	mR = _mm_load_ps(SFRe + 104);
	mI = _mm_load_ps(SFIm + 104);
	_mm_store_ps(SFRe + 104, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 104, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 108);
	mI = _mm_load_ps(SFIm + 108);
	_mm_store_ps(SFRe + 108, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 108, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 108);
	mI = _mm_load_ps(SFIm + 108);
	_mm_store_ps(SFRe + 108, _mm_sub_ps(_mm_load_ps(SFIm + 104), mI));
	_mm_store_ps(SFIm + 108, _mm_sub_ps(mR, _mm_load_ps(SFRe + 104)));
	_mm_store_ps(SFRe + 104, _mm_add_ps(_mm_load_ps(SFRe + 104), mR));
	_mm_store_ps(SFIm + 104, _mm_add_ps(_mm_load_ps(SFIm + 104), mI));
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 96), _mm256_load_ps(SFRe + 104));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 96), _mm256_load_ps(SFIm + 104));
	_mm256_store_ps(SFRe + 104, _mm256_sub_ps(_mm256_load_ps(SFRe + 96), _mm256_load_ps(SFRe + 104)));
	_mm256_store_ps(SFIm + 104, _mm256_sub_ps(_mm256_load_ps(SFIm + 96), _mm256_load_ps(SFIm + 104)));
	_mm256_store_ps(SFRe + 96, m256R);
	_mm256_store_ps(SFIm + 96, m256I);
	m256RF1 = _mm256_set_ps(0.195118, 0.382712, 0.555599, 0.707133, 0.831492, 0.923896, 0.980794, 1.000000);
	m256IF1 = _mm256_set_ps(-0.980780, -0.923868, -0.831451, -0.707080, -0.555536, -0.382643, -0.195044, -0.000000);
	m256RF2 = _mm256_set_ps(-0.555599, -0.923896, -0.980785, -0.707098, -0.195069, 0.382712, 0.831492, 1.000000);
	m256IF2 = _mm256_set_ps(0.831451, 0.382643, -0.195093, -0.707116, -0.980790, -0.923868, -0.555536, -0.000000);
	m256R = _mm256_load_ps(SFRe + 112);
	m256I = _mm256_load_ps(SFIm + 112);
	_mm256_store_ps(SFRe + 112, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF1), _mm256_mul_ps(m256I, m256IF1)));
	_mm256_store_ps(SFIm + 112, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF1), _mm256_mul_ps(m256I, m256RF1)));
	m256R = _mm256_load_ps(SFRe + 120);
	m256I = _mm256_load_ps(SFIm + 120);
	_mm256_store_ps(SFRe + 120, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF2), _mm256_mul_ps(m256I, m256IF2)));
	_mm256_store_ps(SFIm + 120, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF2), _mm256_mul_ps(m256I, m256RF2)));
	m256R = _mm256_load_ps(SFRe + 120);
	m256I = _mm256_load_ps(SFIm + 120);
	_mm256_store_ps(SFRe + 120, _mm256_sub_ps(_mm256_load_ps(SFIm + 112), m256I));
	_mm256_store_ps(SFIm + 120, _mm256_sub_ps(m256R, _mm256_load_ps(SFRe + 112)));
	_mm256_store_ps(SFRe + 112, _mm256_add_ps(_mm256_load_ps(SFRe + 112), m256R));
	_mm256_store_ps(SFIm + 112, _mm256_add_ps(_mm256_load_ps(SFIm + 112), m256I));
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 96), _mm256_load_ps(SFRe + 112));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 96), _mm256_load_ps(SFIm + 112));
	_mm256_store_ps(SFRe + 112, _mm256_sub_ps(_mm256_load_ps(SFRe + 96), _mm256_load_ps(SFRe + 112)));
	_mm256_store_ps(SFIm + 112, _mm256_sub_ps(_mm256_load_ps(SFIm + 96), _mm256_load_ps(SFIm + 112)));
	_mm256_store_ps(SFRe + 96, m256R);
	_mm256_store_ps(SFIm + 96, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 104), _mm256_load_ps(SFRe + 120));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 104), _mm256_load_ps(SFIm + 120));
	_mm256_store_ps(SFRe + 120, _mm256_sub_ps(_mm256_load_ps(SFRe + 104), _mm256_load_ps(SFRe + 120)));
	_mm256_store_ps(SFIm + 120, _mm256_sub_ps(_mm256_load_ps(SFIm + 104), _mm256_load_ps(SFIm + 120)));
	_mm256_store_ps(SFRe + 104, m256R);
	_mm256_store_ps(SFIm + 104, m256I);
	R = SFRe[94] + SFRe[95];
	I = SFIm[94] + SFIm[95];
	SFRe[95] = SFRe[94] - SFRe[95];
	SFIm[95] = SFIm[94] - SFIm[95];
	SFRe[94] = R;
	SFIm[94] = I;
	R = SFRe[92] + SFRe[93];
	I = SFIm[92] + SFIm[93];
	SFRe[93] = SFRe[92] - SFRe[93];
	SFIm[93] = SFIm[92] - SFIm[93];
	SFRe[92] = R;
	SFIm[92] = I;
	Re0 = SFRe[88]; Im0 = SFIm[88];
	Re1 = SFRe[89]; Im1 = SFIm[89];
	Re2 = SFRe[90]; Im2 = SFIm[90];
	Re3 = SFRe[91]; Im3 = SFIm[91];
	SFRe[88] = Re0 + Re1; SFIm[88] = Im0 + Im1;
	SFRe[89] = Re0 - Re1; SFIm[89] = Im0 - Im1;
	SFRe[90] = Re2 + Re3; SFIm[90] = Im2 + Im3;
	SFRe[91] = Im2 - Im3; SFIm[91] = Re3 - Re2;
	RA = SFRe[88] + SFRe[90];
	IA = SFIm[88] + SFIm[90];
	SFRe[90] = SFRe[88] - SFRe[90];
	SFIm[90] = SFIm[88] - SFIm[90];
	SFRe[88] = RA;
	SFIm[88] = IA;
	RA = SFRe[89] + SFRe[91];
	IA = SFIm[89] + SFIm[91];
	SFRe[91] = SFRe[89] - SFRe[91];
	SFIm[91] = SFIm[89] - SFIm[91];
	SFRe[89] = RA;
	SFIm[89] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[92];
	I = SFIm[92];
	SFRe[92] = R * RF1 - I * IF1;
	SFIm[92] = R * IF1 + I * RF1;
	R = SFRe[94];
	I = SFIm[94];
	SFRe[94] = R * RF2 - I * IF2;
	SFIm[94] = R * IF2 + I * RF2;
	R = SFRe[94];
	I = SFIm[94];
	SFRe[94] = SFIm[92] - I;
	SFIm[94] = R - SFRe[92];
	SFRe[92] += R;
	SFIm[92] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[93];
	I = SFIm[93];
	SFRe[93] = R * RF1 - I * IF1;
	SFIm[93] = R * IF1 + I * RF1;
	R = SFRe[95];
	I = SFIm[95];
	SFRe[95] = R * RF2 - I * IF2;
	SFIm[95] = R * IF2 + I * RF2;
	R = SFRe[95];
	I = SFIm[95];
	SFRe[95] = SFIm[93] - I;
	SFIm[95] = R - SFRe[93];
	SFRe[93] += R;
	SFIm[93] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 88), _mm_load_ps(SFRe + 92));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 88), _mm_load_ps(SFIm + 92));
	_mm_store_ps(SFRe + 92, _mm_sub_ps(_mm_load_ps(SFRe + 88), _mm_load_ps(SFRe + 92)));
	_mm_store_ps(SFIm + 92, _mm_sub_ps(_mm_load_ps(SFIm + 88), _mm_load_ps(SFIm + 92)));
	_mm_store_ps(SFRe + 88, mR);
	_mm_store_ps(SFIm + 88, mI);
	R = SFRe[86] + SFRe[87];
	I = SFIm[86] + SFIm[87];
	SFRe[87] = SFRe[86] - SFRe[87];
	SFIm[87] = SFIm[86] - SFIm[87];
	SFRe[86] = R;
	SFIm[86] = I;
	R = SFRe[84] + SFRe[85];
	I = SFIm[84] + SFIm[85];
	SFRe[85] = SFRe[84] - SFRe[85];
	SFIm[85] = SFIm[84] - SFIm[85];
	SFRe[84] = R;
	SFIm[84] = I;
	Re0 = SFRe[80]; Im0 = SFIm[80];
	Re1 = SFRe[81]; Im1 = SFIm[81];
	Re2 = SFRe[82]; Im2 = SFIm[82];
	Re3 = SFRe[83]; Im3 = SFIm[83];
	SFRe[80] = Re0 + Re1; SFIm[80] = Im0 + Im1;
	SFRe[81] = Re0 - Re1; SFIm[81] = Im0 - Im1;
	SFRe[82] = Re2 + Re3; SFIm[82] = Im2 + Im3;
	SFRe[83] = Im2 - Im3; SFIm[83] = Re3 - Re2;
	RA = SFRe[80] + SFRe[82];
	IA = SFIm[80] + SFIm[82];
	SFRe[82] = SFRe[80] - SFRe[82];
	SFIm[82] = SFIm[80] - SFIm[82];
	SFRe[80] = RA;
	SFIm[80] = IA;
	RA = SFRe[81] + SFRe[83];
	IA = SFIm[81] + SFIm[83];
	SFRe[83] = SFRe[81] - SFRe[83];
	SFIm[83] = SFIm[81] - SFIm[83];
	SFRe[81] = RA;
	SFIm[81] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[84];
	I = SFIm[84];
	SFRe[84] = R * RF1 - I * IF1;
	SFIm[84] = R * IF1 + I * RF1;
	R = SFRe[86];
	I = SFIm[86];
	SFRe[86] = R * RF2 - I * IF2;
	SFIm[86] = R * IF2 + I * RF2;
	R = SFRe[86];
	I = SFIm[86];
	SFRe[86] = SFIm[84] - I;
	SFIm[86] = R - SFRe[84];
	SFRe[84] += R;
	SFIm[84] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[85];
	I = SFIm[85];
	SFRe[85] = R * RF1 - I * IF1;
	SFIm[85] = R * IF1 + I * RF1;
	R = SFRe[87];
	I = SFIm[87];
	SFRe[87] = R * RF2 - I * IF2;
	SFIm[87] = R * IF2 + I * RF2;
	R = SFRe[87];
	I = SFIm[87];
	SFRe[87] = SFIm[85] - I;
	SFIm[87] = R - SFRe[85];
	SFRe[85] += R;
	SFIm[85] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 80), _mm_load_ps(SFRe + 84));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 80), _mm_load_ps(SFIm + 84));
	_mm_store_ps(SFRe + 84, _mm_sub_ps(_mm_load_ps(SFRe + 80), _mm_load_ps(SFRe + 84)));
	_mm_store_ps(SFIm + 84, _mm_sub_ps(_mm_load_ps(SFIm + 80), _mm_load_ps(SFIm + 84)));
	_mm_store_ps(SFRe + 80, mR);
	_mm_store_ps(SFIm + 80, mI);
	Re0 = SFRe[76]; Im0 = SFIm[76];
	Re1 = SFRe[77]; Im1 = SFIm[77];
	Re2 = SFRe[78]; Im2 = SFIm[78];
	Re3 = SFRe[79]; Im3 = SFIm[79];
	SFRe[76] = Re0 + Re1; SFIm[76] = Im0 + Im1;
	SFRe[77] = Re0 - Re1; SFIm[77] = Im0 - Im1;
	SFRe[78] = Re2 + Re3; SFIm[78] = Im2 + Im3;
	SFRe[79] = Im2 - Im3; SFIm[79] = Re3 - Re2;
	RA = SFRe[76] + SFRe[78];
	IA = SFIm[76] + SFIm[78];
	SFRe[78] = SFRe[76] - SFRe[78];
	SFIm[78] = SFIm[76] - SFIm[78];
	SFRe[76] = RA;
	SFIm[76] = IA;
	RA = SFRe[77] + SFRe[79];
	IA = SFIm[77] + SFIm[79];
	SFRe[79] = SFRe[77] - SFRe[79];
	SFIm[79] = SFIm[77] - SFIm[79];
	SFRe[77] = RA;
	SFIm[77] = IA;
	Re0 = SFRe[72]; Im0 = SFIm[72];
	Re1 = SFRe[73]; Im1 = SFIm[73];
	Re2 = SFRe[74]; Im2 = SFIm[74];
	Re3 = SFRe[75]; Im3 = SFIm[75];
	SFRe[72] = Re0 + Re1; SFIm[72] = Im0 + Im1;
	SFRe[73] = Re0 - Re1; SFIm[73] = Im0 - Im1;
	SFRe[74] = Re2 + Re3; SFIm[74] = Im2 + Im3;
	SFRe[75] = Im2 - Im3; SFIm[75] = Re3 - Re2;
	RA = SFRe[72] + SFRe[74];
	IA = SFIm[72] + SFIm[74];
	SFRe[74] = SFRe[72] - SFRe[74];
	SFIm[74] = SFIm[72] - SFIm[74];
	SFRe[72] = RA;
	SFIm[72] = IA;
	RA = SFRe[73] + SFRe[75];
	IA = SFIm[73] + SFIm[75];
	SFRe[75] = SFRe[73] - SFRe[75];
	SFIm[75] = SFIm[73] - SFIm[75];
	SFRe[73] = RA;
	SFIm[73] = IA;
	R = SFRe[70] + SFRe[71];
	I = SFIm[70] + SFIm[71];
	SFRe[71] = SFRe[70] - SFRe[71];
	SFIm[71] = SFIm[70] - SFIm[71];
	SFRe[70] = R;
	SFIm[70] = I;
	R = SFRe[68] + SFRe[69];
	I = SFIm[68] + SFIm[69];
	SFRe[69] = SFRe[68] - SFRe[69];
	SFIm[69] = SFIm[68] - SFIm[69];
	SFRe[68] = R;
	SFIm[68] = I;
	Re0 = SFRe[64]; Im0 = SFIm[64];
	Re1 = SFRe[65]; Im1 = SFIm[65];
	Re2 = SFRe[66]; Im2 = SFIm[66];
	Re3 = SFRe[67]; Im3 = SFIm[67];
	SFRe[64] = Re0 + Re1; SFIm[64] = Im0 + Im1;
	SFRe[65] = Re0 - Re1; SFIm[65] = Im0 - Im1;
	SFRe[66] = Re2 + Re3; SFIm[66] = Im2 + Im3;
	SFRe[67] = Im2 - Im3; SFIm[67] = Re3 - Re2;
	RA = SFRe[64] + SFRe[66];
	IA = SFIm[64] + SFIm[66];
	SFRe[66] = SFRe[64] - SFRe[66];
	SFIm[66] = SFIm[64] - SFIm[66];
	SFRe[64] = RA;
	SFIm[64] = IA;
	RA = SFRe[65] + SFRe[67];
	IA = SFIm[65] + SFIm[67];
	SFRe[67] = SFRe[65] - SFRe[67];
	SFIm[67] = SFIm[65] - SFIm[67];
	SFRe[65] = RA;
	SFIm[65] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[68];
	I = SFIm[68];
	SFRe[68] = R * RF1 - I * IF1;
	SFIm[68] = R * IF1 + I * RF1;
	R = SFRe[70];
	I = SFIm[70];
	SFRe[70] = R * RF2 - I * IF2;
	SFIm[70] = R * IF2 + I * RF2;
	R = SFRe[70];
	I = SFIm[70];
	SFRe[70] = SFIm[68] - I;
	SFIm[70] = R - SFRe[68];
	SFRe[68] += R;
	SFIm[68] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[69];
	I = SFIm[69];
	SFRe[69] = R * RF1 - I * IF1;
	SFIm[69] = R * IF1 + I * RF1;
	R = SFRe[71];
	I = SFIm[71];
	SFRe[71] = R * RF2 - I * IF2;
	SFIm[71] = R * IF2 + I * RF2;
	R = SFRe[71];
	I = SFIm[71];
	SFRe[71] = SFIm[69] - I;
	SFIm[71] = R - SFRe[69];
	SFRe[69] += R;
	SFIm[69] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 64), _mm_load_ps(SFRe + 68));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 64), _mm_load_ps(SFIm + 68));
	_mm_store_ps(SFRe + 68, _mm_sub_ps(_mm_load_ps(SFRe + 64), _mm_load_ps(SFRe + 68)));
	_mm_store_ps(SFIm + 68, _mm_sub_ps(_mm_load_ps(SFIm + 64), _mm_load_ps(SFIm + 68)));
	_mm_store_ps(SFRe + 64, mR);
	_mm_store_ps(SFIm + 64, mI);
	mRF1 = _mm_set_ps(0.382712, 0.707133, 0.923896, 1.000000);
	mIF1 = _mm_set_ps(-0.923868, -0.707080, -0.382643, -0.000000);
	mRF2 = _mm_set_ps(-0.923896, -0.707098, 0.382712, 1.000000);
	mIF2 = _mm_set_ps(0.382643, -0.707116, -0.923868, -0.000000);
	mR = _mm_load_ps(SFRe + 72);
	mI = _mm_load_ps(SFIm + 72);
	_mm_store_ps(SFRe + 72, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 72, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 76);
	mI = _mm_load_ps(SFIm + 76);
	_mm_store_ps(SFRe + 76, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 76, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 76);
	mI = _mm_load_ps(SFIm + 76);
	_mm_store_ps(SFRe + 76, _mm_sub_ps(_mm_load_ps(SFIm + 72), mI));
	_mm_store_ps(SFIm + 76, _mm_sub_ps(mR, _mm_load_ps(SFRe + 72)));
	_mm_store_ps(SFRe + 72, _mm_add_ps(_mm_load_ps(SFRe + 72), mR));
	_mm_store_ps(SFIm + 72, _mm_add_ps(_mm_load_ps(SFIm + 72), mI));
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 64), _mm256_load_ps(SFRe + 72));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 64), _mm256_load_ps(SFIm + 72));
	_mm256_store_ps(SFRe + 72, _mm256_sub_ps(_mm256_load_ps(SFRe + 64), _mm256_load_ps(SFRe + 72)));
	_mm256_store_ps(SFIm + 72, _mm256_sub_ps(_mm256_load_ps(SFIm + 64), _mm256_load_ps(SFIm + 72)));
	_mm256_store_ps(SFRe + 64, m256R);
	_mm256_store_ps(SFIm + 64, m256I);
	m256RF1 = _mm256_set_ps(0.195118, 0.382712, 0.555599, 0.707133, 0.831492, 0.923896, 0.980794, 1.000000);
	m256IF1 = _mm256_set_ps(-0.980780, -0.923868, -0.831451, -0.707080, -0.555536, -0.382643, -0.195044, -0.000000);
	m256RF2 = _mm256_set_ps(-0.555599, -0.923896, -0.980785, -0.707098, -0.195069, 0.382712, 0.831492, 1.000000);
	m256IF2 = _mm256_set_ps(0.831451, 0.382643, -0.195093, -0.707116, -0.980790, -0.923868, -0.555536, -0.000000);
	m256R = _mm256_load_ps(SFRe + 80);
	m256I = _mm256_load_ps(SFIm + 80);
	_mm256_store_ps(SFRe + 80, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF1), _mm256_mul_ps(m256I, m256IF1)));
	_mm256_store_ps(SFIm + 80, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF1), _mm256_mul_ps(m256I, m256RF1)));
	m256R = _mm256_load_ps(SFRe + 88);
	m256I = _mm256_load_ps(SFIm + 88);
	_mm256_store_ps(SFRe + 88, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF2), _mm256_mul_ps(m256I, m256IF2)));
	_mm256_store_ps(SFIm + 88, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF2), _mm256_mul_ps(m256I, m256RF2)));
	m256R = _mm256_load_ps(SFRe + 88);
	m256I = _mm256_load_ps(SFIm + 88);
	_mm256_store_ps(SFRe + 88, _mm256_sub_ps(_mm256_load_ps(SFIm + 80), m256I));
	_mm256_store_ps(SFIm + 88, _mm256_sub_ps(m256R, _mm256_load_ps(SFRe + 80)));
	_mm256_store_ps(SFRe + 80, _mm256_add_ps(_mm256_load_ps(SFRe + 80), m256R));
	_mm256_store_ps(SFIm + 80, _mm256_add_ps(_mm256_load_ps(SFIm + 80), m256I));
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 64), _mm256_load_ps(SFRe + 80));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 64), _mm256_load_ps(SFIm + 80));
	_mm256_store_ps(SFRe + 80, _mm256_sub_ps(_mm256_load_ps(SFRe + 64), _mm256_load_ps(SFRe + 80)));
	_mm256_store_ps(SFIm + 80, _mm256_sub_ps(_mm256_load_ps(SFIm + 64), _mm256_load_ps(SFIm + 80)));
	_mm256_store_ps(SFRe + 64, m256R);
	_mm256_store_ps(SFIm + 64, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 72), _mm256_load_ps(SFRe + 88));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 72), _mm256_load_ps(SFIm + 88));
	_mm256_store_ps(SFRe + 88, _mm256_sub_ps(_mm256_load_ps(SFRe + 72), _mm256_load_ps(SFRe + 88)));
	_mm256_store_ps(SFIm + 88, _mm256_sub_ps(_mm256_load_ps(SFIm + 72), _mm256_load_ps(SFIm + 88)));
	_mm256_store_ps(SFRe + 72, m256R);
	_mm256_store_ps(SFIm + 72, m256I);
	Re0 = SFRe[60]; Im0 = SFIm[60];
	Re1 = SFRe[61]; Im1 = SFIm[61];
	Re2 = SFRe[62]; Im2 = SFIm[62];
	Re3 = SFRe[63]; Im3 = SFIm[63];
	SFRe[60] = Re0 + Re1; SFIm[60] = Im0 + Im1;
	SFRe[61] = Re0 - Re1; SFIm[61] = Im0 - Im1;
	SFRe[62] = Re2 + Re3; SFIm[62] = Im2 + Im3;
	SFRe[63] = Im2 - Im3; SFIm[63] = Re3 - Re2;
	RA = SFRe[60] + SFRe[62];
	IA = SFIm[60] + SFIm[62];
	SFRe[62] = SFRe[60] - SFRe[62];
	SFIm[62] = SFIm[60] - SFIm[62];
	SFRe[60] = RA;
	SFIm[60] = IA;
	RA = SFRe[61] + SFRe[63];
	IA = SFIm[61] + SFIm[63];
	SFRe[63] = SFRe[61] - SFRe[63];
	SFIm[63] = SFIm[61] - SFIm[63];
	SFRe[61] = RA;
	SFIm[61] = IA;
	Re0 = SFRe[56]; Im0 = SFIm[56];
	Re1 = SFRe[57]; Im1 = SFIm[57];
	Re2 = SFRe[58]; Im2 = SFIm[58];
	Re3 = SFRe[59]; Im3 = SFIm[59];
	SFRe[56] = Re0 + Re1; SFIm[56] = Im0 + Im1;
	SFRe[57] = Re0 - Re1; SFIm[57] = Im0 - Im1;
	SFRe[58] = Re2 + Re3; SFIm[58] = Im2 + Im3;
	SFRe[59] = Im2 - Im3; SFIm[59] = Re3 - Re2;
	RA = SFRe[56] + SFRe[58];
	IA = SFIm[56] + SFIm[58];
	SFRe[58] = SFRe[56] - SFRe[58];
	SFIm[58] = SFIm[56] - SFIm[58];
	SFRe[56] = RA;
	SFIm[56] = IA;
	RA = SFRe[57] + SFRe[59];
	IA = SFIm[57] + SFIm[59];
	SFRe[59] = SFRe[57] - SFRe[59];
	SFIm[59] = SFIm[57] - SFIm[59];
	SFRe[57] = RA;
	SFIm[57] = IA;
	R = SFRe[54] + SFRe[55];
	I = SFIm[54] + SFIm[55];
	SFRe[55] = SFRe[54] - SFRe[55];
	SFIm[55] = SFIm[54] - SFIm[55];
	SFRe[54] = R;
	SFIm[54] = I;
	R = SFRe[52] + SFRe[53];
	I = SFIm[52] + SFIm[53];
	SFRe[53] = SFRe[52] - SFRe[53];
	SFIm[53] = SFIm[52] - SFIm[53];
	SFRe[52] = R;
	SFIm[52] = I;
	Re0 = SFRe[48]; Im0 = SFIm[48];
	Re1 = SFRe[49]; Im1 = SFIm[49];
	Re2 = SFRe[50]; Im2 = SFIm[50];
	Re3 = SFRe[51]; Im3 = SFIm[51];
	SFRe[48] = Re0 + Re1; SFIm[48] = Im0 + Im1;
	SFRe[49] = Re0 - Re1; SFIm[49] = Im0 - Im1;
	SFRe[50] = Re2 + Re3; SFIm[50] = Im2 + Im3;
	SFRe[51] = Im2 - Im3; SFIm[51] = Re3 - Re2;
	RA = SFRe[48] + SFRe[50];
	IA = SFIm[48] + SFIm[50];
	SFRe[50] = SFRe[48] - SFRe[50];
	SFIm[50] = SFIm[48] - SFIm[50];
	SFRe[48] = RA;
	SFIm[48] = IA;
	RA = SFRe[49] + SFRe[51];
	IA = SFIm[49] + SFIm[51];
	SFRe[51] = SFRe[49] - SFRe[51];
	SFIm[51] = SFIm[49] - SFIm[51];
	SFRe[49] = RA;
	SFIm[49] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[52];
	I = SFIm[52];
	SFRe[52] = R * RF1 - I * IF1;
	SFIm[52] = R * IF1 + I * RF1;
	R = SFRe[54];
	I = SFIm[54];
	SFRe[54] = R * RF2 - I * IF2;
	SFIm[54] = R * IF2 + I * RF2;
	R = SFRe[54];
	I = SFIm[54];
	SFRe[54] = SFIm[52] - I;
	SFIm[54] = R - SFRe[52];
	SFRe[52] += R;
	SFIm[52] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[53];
	I = SFIm[53];
	SFRe[53] = R * RF1 - I * IF1;
	SFIm[53] = R * IF1 + I * RF1;
	R = SFRe[55];
	I = SFIm[55];
	SFRe[55] = R * RF2 - I * IF2;
	SFIm[55] = R * IF2 + I * RF2;
	R = SFRe[55];
	I = SFIm[55];
	SFRe[55] = SFIm[53] - I;
	SFIm[55] = R - SFRe[53];
	SFRe[53] += R;
	SFIm[53] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 48), _mm_load_ps(SFRe + 52));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 48), _mm_load_ps(SFIm + 52));
	_mm_store_ps(SFRe + 52, _mm_sub_ps(_mm_load_ps(SFRe + 48), _mm_load_ps(SFRe + 52)));
	_mm_store_ps(SFIm + 52, _mm_sub_ps(_mm_load_ps(SFIm + 48), _mm_load_ps(SFIm + 52)));
	_mm_store_ps(SFRe + 48, mR);
	_mm_store_ps(SFIm + 48, mI);
	mRF1 = _mm_set_ps(0.382712, 0.707133, 0.923896, 1.000000);
	mIF1 = _mm_set_ps(-0.923868, -0.707080, -0.382643, -0.000000);
	mRF2 = _mm_set_ps(-0.923896, -0.707098, 0.382712, 1.000000);
	mIF2 = _mm_set_ps(0.382643, -0.707116, -0.923868, -0.000000);
	mR = _mm_load_ps(SFRe + 56);
	mI = _mm_load_ps(SFIm + 56);
	_mm_store_ps(SFRe + 56, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 56, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 60);
	mI = _mm_load_ps(SFIm + 60);
	_mm_store_ps(SFRe + 60, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 60, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 60);
	mI = _mm_load_ps(SFIm + 60);
	_mm_store_ps(SFRe + 60, _mm_sub_ps(_mm_load_ps(SFIm + 56), mI));
	_mm_store_ps(SFIm + 60, _mm_sub_ps(mR, _mm_load_ps(SFRe + 56)));
	_mm_store_ps(SFRe + 56, _mm_add_ps(_mm_load_ps(SFRe + 56), mR));
	_mm_store_ps(SFIm + 56, _mm_add_ps(_mm_load_ps(SFIm + 56), mI));
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 48), _mm256_load_ps(SFRe + 56));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 48), _mm256_load_ps(SFIm + 56));
	_mm256_store_ps(SFRe + 56, _mm256_sub_ps(_mm256_load_ps(SFRe + 48), _mm256_load_ps(SFRe + 56)));
	_mm256_store_ps(SFIm + 56, _mm256_sub_ps(_mm256_load_ps(SFIm + 48), _mm256_load_ps(SFIm + 56)));
	_mm256_store_ps(SFRe + 48, m256R);
	_mm256_store_ps(SFIm + 48, m256I);
	Re0 = SFRe[44]; Im0 = SFIm[44];
	Re1 = SFRe[45]; Im1 = SFIm[45];
	Re2 = SFRe[46]; Im2 = SFIm[46];
	Re3 = SFRe[47]; Im3 = SFIm[47];
	SFRe[44] = Re0 + Re1; SFIm[44] = Im0 + Im1;
	SFRe[45] = Re0 - Re1; SFIm[45] = Im0 - Im1;
	SFRe[46] = Re2 + Re3; SFIm[46] = Im2 + Im3;
	SFRe[47] = Im2 - Im3; SFIm[47] = Re3 - Re2;
	RA = SFRe[44] + SFRe[46];
	IA = SFIm[44] + SFIm[46];
	SFRe[46] = SFRe[44] - SFRe[46];
	SFIm[46] = SFIm[44] - SFIm[46];
	SFRe[44] = RA;
	SFIm[44] = IA;
	RA = SFRe[45] + SFRe[47];
	IA = SFIm[45] + SFIm[47];
	SFRe[47] = SFRe[45] - SFRe[47];
	SFIm[47] = SFIm[45] - SFIm[47];
	SFRe[45] = RA;
	SFIm[45] = IA;
	Re0 = SFRe[40]; Im0 = SFIm[40];
	Re1 = SFRe[41]; Im1 = SFIm[41];
	Re2 = SFRe[42]; Im2 = SFIm[42];
	Re3 = SFRe[43]; Im3 = SFIm[43];
	SFRe[40] = Re0 + Re1; SFIm[40] = Im0 + Im1;
	SFRe[41] = Re0 - Re1; SFIm[41] = Im0 - Im1;
	SFRe[42] = Re2 + Re3; SFIm[42] = Im2 + Im3;
	SFRe[43] = Im2 - Im3; SFIm[43] = Re3 - Re2;
	RA = SFRe[40] + SFRe[42];
	IA = SFIm[40] + SFIm[42];
	SFRe[42] = SFRe[40] - SFRe[42];
	SFIm[42] = SFIm[40] - SFIm[42];
	SFRe[40] = RA;
	SFIm[40] = IA;
	RA = SFRe[41] + SFRe[43];
	IA = SFIm[41] + SFIm[43];
	SFRe[43] = SFRe[41] - SFRe[43];
	SFIm[43] = SFIm[41] - SFIm[43];
	SFRe[41] = RA;
	SFIm[41] = IA;
	R = SFRe[38] + SFRe[39];
	I = SFIm[38] + SFIm[39];
	SFRe[39] = SFRe[38] - SFRe[39];
	SFIm[39] = SFIm[38] - SFIm[39];
	SFRe[38] = R;
	SFIm[38] = I;
	R = SFRe[36] + SFRe[37];
	I = SFIm[36] + SFIm[37];
	SFRe[37] = SFRe[36] - SFRe[37];
	SFIm[37] = SFIm[36] - SFIm[37];
	SFRe[36] = R;
	SFIm[36] = I;
	Re0 = SFRe[32]; Im0 = SFIm[32];
	Re1 = SFRe[33]; Im1 = SFIm[33];
	Re2 = SFRe[34]; Im2 = SFIm[34];
	Re3 = SFRe[35]; Im3 = SFIm[35];
	SFRe[32] = Re0 + Re1; SFIm[32] = Im0 + Im1;
	SFRe[33] = Re0 - Re1; SFIm[33] = Im0 - Im1;
	SFRe[34] = Re2 + Re3; SFIm[34] = Im2 + Im3;
	SFRe[35] = Im2 - Im3; SFIm[35] = Re3 - Re2;
	RA = SFRe[32] + SFRe[34];
	IA = SFIm[32] + SFIm[34];
	SFRe[34] = SFRe[32] - SFRe[34];
	SFIm[34] = SFIm[32] - SFIm[34];
	SFRe[32] = RA;
	SFIm[32] = IA;
	RA = SFRe[33] + SFRe[35];
	IA = SFIm[33] + SFIm[35];
	SFRe[35] = SFRe[33] - SFRe[35];
	SFIm[35] = SFIm[33] - SFIm[35];
	SFRe[33] = RA;
	SFIm[33] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[36];
	I = SFIm[36];
	SFRe[36] = R * RF1 - I * IF1;
	SFIm[36] = R * IF1 + I * RF1;
	R = SFRe[38];
	I = SFIm[38];
	SFRe[38] = R * RF2 - I * IF2;
	SFIm[38] = R * IF2 + I * RF2;
	R = SFRe[38];
	I = SFIm[38];
	SFRe[38] = SFIm[36] - I;
	SFIm[38] = R - SFRe[36];
	SFRe[36] += R;
	SFIm[36] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[37];
	I = SFIm[37];
	SFRe[37] = R * RF1 - I * IF1;
	SFIm[37] = R * IF1 + I * RF1;
	R = SFRe[39];
	I = SFIm[39];
	SFRe[39] = R * RF2 - I * IF2;
	SFIm[39] = R * IF2 + I * RF2;
	R = SFRe[39];
	I = SFIm[39];
	SFRe[39] = SFIm[37] - I;
	SFIm[39] = R - SFRe[37];
	SFRe[37] += R;
	SFIm[37] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 32), _mm_load_ps(SFRe + 36));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 32), _mm_load_ps(SFIm + 36));
	_mm_store_ps(SFRe + 36, _mm_sub_ps(_mm_load_ps(SFRe + 32), _mm_load_ps(SFRe + 36)));
	_mm_store_ps(SFIm + 36, _mm_sub_ps(_mm_load_ps(SFIm + 32), _mm_load_ps(SFIm + 36)));
	_mm_store_ps(SFRe + 32, mR);
	_mm_store_ps(SFIm + 32, mI);
	mRF1 = _mm_set_ps(0.382712, 0.707133, 0.923896, 1.000000);
	mIF1 = _mm_set_ps(-0.923868, -0.707080, -0.382643, -0.000000);
	mRF2 = _mm_set_ps(-0.923896, -0.707098, 0.382712, 1.000000);
	mIF2 = _mm_set_ps(0.382643, -0.707116, -0.923868, -0.000000);
	mR = _mm_load_ps(SFRe + 40);
	mI = _mm_load_ps(SFIm + 40);
	_mm_store_ps(SFRe + 40, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 40, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 44);
	mI = _mm_load_ps(SFIm + 44);
	_mm_store_ps(SFRe + 44, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 44, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 44);
	mI = _mm_load_ps(SFIm + 44);
	_mm_store_ps(SFRe + 44, _mm_sub_ps(_mm_load_ps(SFIm + 40), mI));
	_mm_store_ps(SFIm + 44, _mm_sub_ps(mR, _mm_load_ps(SFRe + 40)));
	_mm_store_ps(SFRe + 40, _mm_add_ps(_mm_load_ps(SFRe + 40), mR));
	_mm_store_ps(SFIm + 40, _mm_add_ps(_mm_load_ps(SFIm + 40), mI));
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 32), _mm256_load_ps(SFRe + 40));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 32), _mm256_load_ps(SFIm + 40));
	_mm256_store_ps(SFRe + 40, _mm256_sub_ps(_mm256_load_ps(SFRe + 32), _mm256_load_ps(SFRe + 40)));
	_mm256_store_ps(SFIm + 40, _mm256_sub_ps(_mm256_load_ps(SFIm + 32), _mm256_load_ps(SFIm + 40)));
	_mm256_store_ps(SFRe + 32, m256R);
	_mm256_store_ps(SFIm + 32, m256I);
	R = SFRe[30] + SFRe[31];
	I = SFIm[30] + SFIm[31];
	SFRe[31] = SFRe[30] - SFRe[31];
	SFIm[31] = SFIm[30] - SFIm[31];
	SFRe[30] = R;
	SFIm[30] = I;
	R = SFRe[28] + SFRe[29];
	I = SFIm[28] + SFIm[29];
	SFRe[29] = SFRe[28] - SFRe[29];
	SFIm[29] = SFIm[28] - SFIm[29];
	SFRe[28] = R;
	SFIm[28] = I;
	Re0 = SFRe[24]; Im0 = SFIm[24];
	Re1 = SFRe[25]; Im1 = SFIm[25];
	Re2 = SFRe[26]; Im2 = SFIm[26];
	Re3 = SFRe[27]; Im3 = SFIm[27];
	SFRe[24] = Re0 + Re1; SFIm[24] = Im0 + Im1;
	SFRe[25] = Re0 - Re1; SFIm[25] = Im0 - Im1;
	SFRe[26] = Re2 + Re3; SFIm[26] = Im2 + Im3;
	SFRe[27] = Im2 - Im3; SFIm[27] = Re3 - Re2;
	RA = SFRe[24] + SFRe[26];
	IA = SFIm[24] + SFIm[26];
	SFRe[26] = SFRe[24] - SFRe[26];
	SFIm[26] = SFIm[24] - SFIm[26];
	SFRe[24] = RA;
	SFIm[24] = IA;
	RA = SFRe[25] + SFRe[27];
	IA = SFIm[25] + SFIm[27];
	SFRe[27] = SFRe[25] - SFRe[27];
	SFIm[27] = SFIm[25] - SFIm[27];
	SFRe[25] = RA;
	SFIm[25] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[28];
	I = SFIm[28];
	SFRe[28] = R * RF1 - I * IF1;
	SFIm[28] = R * IF1 + I * RF1;
	R = SFRe[30];
	I = SFIm[30];
	SFRe[30] = R * RF2 - I * IF2;
	SFIm[30] = R * IF2 + I * RF2;
	R = SFRe[30];
	I = SFIm[30];
	SFRe[30] = SFIm[28] - I;
	SFIm[30] = R - SFRe[28];
	SFRe[28] += R;
	SFIm[28] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[29];
	I = SFIm[29];
	SFRe[29] = R * RF1 - I * IF1;
	SFIm[29] = R * IF1 + I * RF1;
	R = SFRe[31];
	I = SFIm[31];
	SFRe[31] = R * RF2 - I * IF2;
	SFIm[31] = R * IF2 + I * RF2;
	R = SFRe[31];
	I = SFIm[31];
	SFRe[31] = SFIm[29] - I;
	SFIm[31] = R - SFRe[29];
	SFRe[29] += R;
	SFIm[29] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 24), _mm_load_ps(SFRe + 28));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 24), _mm_load_ps(SFIm + 28));
	_mm_store_ps(SFRe + 28, _mm_sub_ps(_mm_load_ps(SFRe + 24), _mm_load_ps(SFRe + 28)));
	_mm_store_ps(SFIm + 28, _mm_sub_ps(_mm_load_ps(SFIm + 24), _mm_load_ps(SFIm + 28)));
	_mm_store_ps(SFRe + 24, mR);
	_mm_store_ps(SFIm + 24, mI);
	R = SFRe[22] + SFRe[23];
	I = SFIm[22] + SFIm[23];
	SFRe[23] = SFRe[22] - SFRe[23];
	SFIm[23] = SFIm[22] - SFIm[23];
	SFRe[22] = R;
	SFIm[22] = I;
	R = SFRe[20] + SFRe[21];
	I = SFIm[20] + SFIm[21];
	SFRe[21] = SFRe[20] - SFRe[21];
	SFIm[21] = SFIm[20] - SFIm[21];
	SFRe[20] = R;
	SFIm[20] = I;
	Re0 = SFRe[16]; Im0 = SFIm[16];
	Re1 = SFRe[17]; Im1 = SFIm[17];
	Re2 = SFRe[18]; Im2 = SFIm[18];
	Re3 = SFRe[19]; Im3 = SFIm[19];
	SFRe[16] = Re0 + Re1; SFIm[16] = Im0 + Im1;
	SFRe[17] = Re0 - Re1; SFIm[17] = Im0 - Im1;
	SFRe[18] = Re2 + Re3; SFIm[18] = Im2 + Im3;
	SFRe[19] = Im2 - Im3; SFIm[19] = Re3 - Re2;
	RA = SFRe[16] + SFRe[18];
	IA = SFIm[16] + SFIm[18];
	SFRe[18] = SFRe[16] - SFRe[18];
	SFIm[18] = SFIm[16] - SFIm[18];
	SFRe[16] = RA;
	SFIm[16] = IA;
	RA = SFRe[17] + SFRe[19];
	IA = SFIm[17] + SFIm[19];
	SFRe[19] = SFRe[17] - SFRe[19];
	SFIm[19] = SFIm[17] - SFIm[19];
	SFRe[17] = RA;
	SFIm[17] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[20];
	I = SFIm[20];
	SFRe[20] = R * RF1 - I * IF1;
	SFIm[20] = R * IF1 + I * RF1;
	R = SFRe[22];
	I = SFIm[22];
	SFRe[22] = R * RF2 - I * IF2;
	SFIm[22] = R * IF2 + I * RF2;
	R = SFRe[22];
	I = SFIm[22];
	SFRe[22] = SFIm[20] - I;
	SFIm[22] = R - SFRe[20];
	SFRe[20] += R;
	SFIm[20] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[21];
	I = SFIm[21];
	SFRe[21] = R * RF1 - I * IF1;
	SFIm[21] = R * IF1 + I * RF1;
	R = SFRe[23];
	I = SFIm[23];
	SFRe[23] = R * RF2 - I * IF2;
	SFIm[23] = R * IF2 + I * RF2;
	R = SFRe[23];
	I = SFIm[23];
	SFRe[23] = SFIm[21] - I;
	SFIm[23] = R - SFRe[21];
	SFRe[21] += R;
	SFIm[21] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 16), _mm_load_ps(SFRe + 20));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 16), _mm_load_ps(SFIm + 20));
	_mm_store_ps(SFRe + 20, _mm_sub_ps(_mm_load_ps(SFRe + 16), _mm_load_ps(SFRe + 20)));
	_mm_store_ps(SFIm + 20, _mm_sub_ps(_mm_load_ps(SFIm + 16), _mm_load_ps(SFIm + 20)));
	_mm_store_ps(SFRe + 16, mR);
	_mm_store_ps(SFIm + 16, mI);
	Re0 = SFRe[12]; Im0 = SFIm[12];
	Re1 = SFRe[13]; Im1 = SFIm[13];
	Re2 = SFRe[14]; Im2 = SFIm[14];
	Re3 = SFRe[15]; Im3 = SFIm[15];
	SFRe[12] = Re0 + Re1; SFIm[12] = Im0 + Im1;
	SFRe[13] = Re0 - Re1; SFIm[13] = Im0 - Im1;
	SFRe[14] = Re2 + Re3; SFIm[14] = Im2 + Im3;
	SFRe[15] = Im2 - Im3; SFIm[15] = Re3 - Re2;
	RA = SFRe[12] + SFRe[14];
	IA = SFIm[12] + SFIm[14];
	SFRe[14] = SFRe[12] - SFRe[14];
	SFIm[14] = SFIm[12] - SFIm[14];
	SFRe[12] = RA;
	SFIm[12] = IA;
	RA = SFRe[13] + SFRe[15];
	IA = SFIm[13] + SFIm[15];
	SFRe[15] = SFRe[13] - SFRe[15];
	SFIm[15] = SFIm[13] - SFIm[15];
	SFRe[13] = RA;
	SFIm[13] = IA;
	Re0 = SFRe[8]; Im0 = SFIm[8];
	Re1 = SFRe[9]; Im1 = SFIm[9];
	Re2 = SFRe[10]; Im2 = SFIm[10];
	Re3 = SFRe[11]; Im3 = SFIm[11];
	SFRe[8] = Re0 + Re1; SFIm[8] = Im0 + Im1;
	SFRe[9] = Re0 - Re1; SFIm[9] = Im0 - Im1;
	SFRe[10] = Re2 + Re3; SFIm[10] = Im2 + Im3;
	SFRe[11] = Im2 - Im3; SFIm[11] = Re3 - Re2;
	RA = SFRe[8] + SFRe[10];
	IA = SFIm[8] + SFIm[10];
	SFRe[10] = SFRe[8] - SFRe[10];
	SFIm[10] = SFIm[8] - SFIm[10];
	SFRe[8] = RA;
	SFIm[8] = IA;
	RA = SFRe[9] + SFRe[11];
	IA = SFIm[9] + SFIm[11];
	SFRe[11] = SFRe[9] - SFRe[11];
	SFIm[11] = SFIm[9] - SFIm[11];
	SFRe[9] = RA;
	SFIm[9] = IA;
	R = SFRe[6] + SFRe[7];
	I = SFIm[6] + SFIm[7];
	SFRe[7] = SFRe[6] - SFRe[7];
	SFIm[7] = SFIm[6] - SFIm[7];
	SFRe[6] = R;
	SFIm[6] = I;
	R = SFRe[4] + SFRe[5];
	I = SFIm[4] + SFIm[5];
	SFRe[5] = SFRe[4] - SFRe[5];
	SFIm[5] = SFIm[4] - SFIm[5];
	SFRe[4] = R;
	SFIm[4] = I;
	Re0 = SFRe[0]; Im0 = SFIm[0];
	Re1 = SFRe[1]; Im1 = SFIm[1];
	Re2 = SFRe[2]; Im2 = SFIm[2];
	Re3 = SFRe[3]; Im3 = SFIm[3];
	SFRe[0] = Re0 + Re1; SFIm[0] = Im0 + Im1;
	SFRe[1] = Re0 - Re1; SFIm[1] = Im0 - Im1;
	SFRe[2] = Re2 + Re3; SFIm[2] = Im2 + Im3;
	SFRe[3] = Im2 - Im3; SFIm[3] = Re3 - Re2;
	RA = SFRe[0] + SFRe[2];
	IA = SFIm[0] + SFIm[2];
	SFRe[2] = SFRe[0] - SFRe[2];
	SFIm[2] = SFIm[0] - SFIm[2];
	SFRe[0] = RA;
	SFIm[0] = IA;
	RA = SFRe[1] + SFRe[3];
	IA = SFIm[1] + SFIm[3];
	SFRe[3] = SFRe[1] - SFRe[3];
	SFIm[3] = SFIm[1] - SFIm[3];
	SFRe[1] = RA;
	SFIm[1] = IA;
	RF1 = 1.000000;
	IF1 = -0.000000;
	RF2 = 1.000000;
	IF2 = -0.000000;
	R = SFRe[4];
	I = SFIm[4];
	SFRe[4] = R * RF1 - I * IF1;
	SFIm[4] = R * IF1 + I * RF1;
	R = SFRe[6];
	I = SFIm[6];
	SFRe[6] = R * RF2 - I * IF2;
	SFIm[6] = R * IF2 + I * RF2;
	R = SFRe[6];
	I = SFIm[6];
	SFRe[6] = SFIm[4] - I;
	SFIm[6] = R - SFRe[4];
	SFRe[4] += R;
	SFIm[4] += I;
	RF1 = 0.707133;
	IF1 = -0.707080;
	RF2 = -0.707098;
	IF2 = -0.707116;
	R = SFRe[5];
	I = SFIm[5];
	SFRe[5] = R * RF1 - I * IF1;
	SFIm[5] = R * IF1 + I * RF1;
	R = SFRe[7];
	I = SFIm[7];
	SFRe[7] = R * RF2 - I * IF2;
	SFIm[7] = R * IF2 + I * RF2;
	R = SFRe[7];
	I = SFIm[7];
	SFRe[7] = SFIm[5] - I;
	SFIm[7] = R - SFRe[5];
	SFRe[5] += R;
	SFIm[5] += I;
	mR = _mm_add_ps(_mm_load_ps(SFRe + 0), _mm_load_ps(SFRe + 4));
	mI = _mm_add_ps(_mm_load_ps(SFIm + 0), _mm_load_ps(SFIm + 4));
	_mm_store_ps(SFRe + 4, _mm_sub_ps(_mm_load_ps(SFRe + 0), _mm_load_ps(SFRe + 4)));
	_mm_store_ps(SFIm + 4, _mm_sub_ps(_mm_load_ps(SFIm + 0), _mm_load_ps(SFIm + 4)));
	_mm_store_ps(SFRe + 0, mR);
	_mm_store_ps(SFIm + 0, mI);
	mRF1 = _mm_set_ps(0.382712, 0.707133, 0.923896, 1.000000);
	mIF1 = _mm_set_ps(-0.923868, -0.707080, -0.382643, -0.000000);
	mRF2 = _mm_set_ps(-0.923896, -0.707098, 0.382712, 1.000000);
	mIF2 = _mm_set_ps(0.382643, -0.707116, -0.923868, -0.000000);
	mR = _mm_load_ps(SFRe + 8);
	mI = _mm_load_ps(SFIm + 8);
	_mm_store_ps(SFRe + 8, _mm_sub_ps(_mm_mul_ps(mR, mRF1), _mm_mul_ps(mI, mIF1)));
	_mm_store_ps(SFIm + 8, _mm_add_ps(_mm_mul_ps(mR, mIF1), _mm_mul_ps(mI, mRF1)));
	mR = _mm_load_ps(SFRe + 12);
	mI = _mm_load_ps(SFIm + 12);
	_mm_store_ps(SFRe + 12, _mm_sub_ps(_mm_mul_ps(mR, mRF2), _mm_mul_ps(mI, mIF2)));
	_mm_store_ps(SFIm + 12, _mm_add_ps(_mm_mul_ps(mR, mIF2), _mm_mul_ps(mI, mRF2)));
	mR = _mm_load_ps(SFRe + 12);
	mI = _mm_load_ps(SFIm + 12);
	_mm_store_ps(SFRe + 12, _mm_sub_ps(_mm_load_ps(SFIm + 8), mI));
	_mm_store_ps(SFIm + 12, _mm_sub_ps(mR, _mm_load_ps(SFRe + 8)));
	_mm_store_ps(SFRe + 8, _mm_add_ps(_mm_load_ps(SFRe + 8), mR));
	_mm_store_ps(SFIm + 8, _mm_add_ps(_mm_load_ps(SFIm + 8), mI));
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 0), _mm256_load_ps(SFRe + 8));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 0), _mm256_load_ps(SFIm + 8));
	_mm256_store_ps(SFRe + 8, _mm256_sub_ps(_mm256_load_ps(SFRe + 0), _mm256_load_ps(SFRe + 8)));
	_mm256_store_ps(SFIm + 8, _mm256_sub_ps(_mm256_load_ps(SFIm + 0), _mm256_load_ps(SFIm + 8)));
	_mm256_store_ps(SFRe + 0, m256R);
	_mm256_store_ps(SFIm + 0, m256I);
	m256RF1 = _mm256_set_ps(0.195118, 0.382712, 0.555599, 0.707133, 0.831492, 0.923896, 0.980794, 1.000000);
	m256IF1 = _mm256_set_ps(-0.980780, -0.923868, -0.831451, -0.707080, -0.555536, -0.382643, -0.195044, -0.000000);
	m256RF2 = _mm256_set_ps(-0.555599, -0.923896, -0.980785, -0.707098, -0.195069, 0.382712, 0.831492, 1.000000);
	m256IF2 = _mm256_set_ps(0.831451, 0.382643, -0.195093, -0.707116, -0.980790, -0.923868, -0.555536, -0.000000);
	m256R = _mm256_load_ps(SFRe + 16);
	m256I = _mm256_load_ps(SFIm + 16);
	_mm256_store_ps(SFRe + 16, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF1), _mm256_mul_ps(m256I, m256IF1)));
	_mm256_store_ps(SFIm + 16, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF1), _mm256_mul_ps(m256I, m256RF1)));
	m256R = _mm256_load_ps(SFRe + 24);
	m256I = _mm256_load_ps(SFIm + 24);
	_mm256_store_ps(SFRe + 24, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF2), _mm256_mul_ps(m256I, m256IF2)));
	_mm256_store_ps(SFIm + 24, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF2), _mm256_mul_ps(m256I, m256RF2)));
	m256R = _mm256_load_ps(SFRe + 24);
	m256I = _mm256_load_ps(SFIm + 24);
	_mm256_store_ps(SFRe + 24, _mm256_sub_ps(_mm256_load_ps(SFIm + 16), m256I));
	_mm256_store_ps(SFIm + 24, _mm256_sub_ps(m256R, _mm256_load_ps(SFRe + 16)));
	_mm256_store_ps(SFRe + 16, _mm256_add_ps(_mm256_load_ps(SFRe + 16), m256R));
	_mm256_store_ps(SFIm + 16, _mm256_add_ps(_mm256_load_ps(SFIm + 16), m256I));
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 0), _mm256_load_ps(SFRe + 16));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 0), _mm256_load_ps(SFIm + 16));
	_mm256_store_ps(SFRe + 16, _mm256_sub_ps(_mm256_load_ps(SFRe + 0), _mm256_load_ps(SFRe + 16)));
	_mm256_store_ps(SFIm + 16, _mm256_sub_ps(_mm256_load_ps(SFIm + 0), _mm256_load_ps(SFIm + 16)));
	_mm256_store_ps(SFRe + 0, m256R);
	_mm256_store_ps(SFIm + 0, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 8), _mm256_load_ps(SFRe + 24));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 8), _mm256_load_ps(SFIm + 24));
	_mm256_store_ps(SFRe + 24, _mm256_sub_ps(_mm256_load_ps(SFRe + 8), _mm256_load_ps(SFRe + 24)));
	_mm256_store_ps(SFIm + 24, _mm256_sub_ps(_mm256_load_ps(SFIm + 8), _mm256_load_ps(SFIm + 24)));
	_mm256_store_ps(SFRe + 8, m256R);
	_mm256_store_ps(SFIm + 8, m256I);
	m256RF1 = _mm256_set_ps(0.773019, 0.831492, 0.881929, 0.923896, 0.956946, 0.980794, 0.995187, 1.000000);
	m256IF1 = _mm256_set_ps(-0.634382, -0.555536, -0.471382, -0.382643, -0.290265, -0.195044, -0.097994, -0.000000);
	m256RF2 = _mm256_set_ps(-0.471404, -0.195069, 0.098019, 0.382712, 0.634402, 0.831492, 0.956946, 1.000000);
	m256IF2 = _mm256_set_ps(-0.881918, -0.980790, -0.995185, -0.923868, -0.773004, -0.555536, -0.290265, -0.000000);
	m256R = _mm256_load_ps(SFRe + 32);
	m256I = _mm256_load_ps(SFIm + 32);
	_mm256_store_ps(SFRe + 32, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF1), _mm256_mul_ps(m256I, m256IF1)));
	_mm256_store_ps(SFIm + 32, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF1), _mm256_mul_ps(m256I, m256RF1)));
	m256R = _mm256_load_ps(SFRe + 48);
	m256I = _mm256_load_ps(SFIm + 48);
	_mm256_store_ps(SFRe + 48, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF2), _mm256_mul_ps(m256I, m256IF2)));
	_mm256_store_ps(SFIm + 48, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF2), _mm256_mul_ps(m256I, m256RF2)));
	m256R = _mm256_load_ps(SFRe + 48);
	m256I = _mm256_load_ps(SFIm + 48);
	_mm256_store_ps(SFRe + 48, _mm256_sub_ps(_mm256_load_ps(SFIm + 32), m256I));
	_mm256_store_ps(SFIm + 48, _mm256_sub_ps(m256R, _mm256_load_ps(SFRe + 32)));
	_mm256_store_ps(SFRe + 32, _mm256_add_ps(_mm256_load_ps(SFRe + 32), m256R));
	_mm256_store_ps(SFIm + 32, _mm256_add_ps(_mm256_load_ps(SFIm + 32), m256I));
	m256RF1 = _mm256_set_ps(0.098019, 0.195118, 0.290289, 0.382712, 0.471404, 0.555599, 0.634402, 0.707133);
	m256IF1 = _mm256_set_ps(-0.995185, -0.980780, -0.956939, -0.923868, -0.881918, -0.831451, -0.773004, -0.707080);
	m256RF2 = _mm256_set_ps(-0.290289, -0.555599, -0.773019, -0.923896, -0.995187, -0.980785, -0.881929, -0.707098);
	m256IF2 = _mm256_set_ps(0.956939, 0.831451, 0.634382, 0.382643, 0.097994, -0.195093, -0.471382, -0.707116);
	m256R = _mm256_load_ps(SFRe + 40);
	m256I = _mm256_load_ps(SFIm + 40);
	_mm256_store_ps(SFRe + 40, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF1), _mm256_mul_ps(m256I, m256IF1)));
	_mm256_store_ps(SFIm + 40, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF1), _mm256_mul_ps(m256I, m256RF1)));
	m256R = _mm256_load_ps(SFRe + 56);
	m256I = _mm256_load_ps(SFIm + 56);
	_mm256_store_ps(SFRe + 56, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF2), _mm256_mul_ps(m256I, m256IF2)));
	_mm256_store_ps(SFIm + 56, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF2), _mm256_mul_ps(m256I, m256RF2)));
	m256R = _mm256_load_ps(SFRe + 56);
	m256I = _mm256_load_ps(SFIm + 56);
	_mm256_store_ps(SFRe + 56, _mm256_sub_ps(_mm256_load_ps(SFIm + 40), m256I));
	_mm256_store_ps(SFIm + 56, _mm256_sub_ps(m256R, _mm256_load_ps(SFRe + 40)));
	_mm256_store_ps(SFRe + 40, _mm256_add_ps(_mm256_load_ps(SFRe + 40), m256R));
	_mm256_store_ps(SFIm + 40, _mm256_add_ps(_mm256_load_ps(SFIm + 40), m256I));
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 0), _mm256_load_ps(SFRe + 32));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 0), _mm256_load_ps(SFIm + 32));
	_mm256_store_ps(SFRe + 32, _mm256_sub_ps(_mm256_load_ps(SFRe + 0), _mm256_load_ps(SFRe + 32)));
	_mm256_store_ps(SFIm + 32, _mm256_sub_ps(_mm256_load_ps(SFIm + 0), _mm256_load_ps(SFIm + 32)));
	_mm256_store_ps(SFRe + 0, m256R);
	_mm256_store_ps(SFIm + 0, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 8), _mm256_load_ps(SFRe + 40));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 8), _mm256_load_ps(SFIm + 40));
	_mm256_store_ps(SFRe + 40, _mm256_sub_ps(_mm256_load_ps(SFRe + 8), _mm256_load_ps(SFRe + 40)));
	_mm256_store_ps(SFIm + 40, _mm256_sub_ps(_mm256_load_ps(SFIm + 8), _mm256_load_ps(SFIm + 40)));
	_mm256_store_ps(SFRe + 8, m256R);
	_mm256_store_ps(SFIm + 8, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 16), _mm256_load_ps(SFRe + 48));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 16), _mm256_load_ps(SFIm + 48));
	_mm256_store_ps(SFRe + 48, _mm256_sub_ps(_mm256_load_ps(SFRe + 16), _mm256_load_ps(SFRe + 48)));
	_mm256_store_ps(SFIm + 48, _mm256_sub_ps(_mm256_load_ps(SFIm + 16), _mm256_load_ps(SFIm + 48)));
	_mm256_store_ps(SFRe + 16, m256R);
	_mm256_store_ps(SFIm + 16, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 24), _mm256_load_ps(SFRe + 56));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 24), _mm256_load_ps(SFIm + 56));
	_mm256_store_ps(SFRe + 56, _mm256_sub_ps(_mm256_load_ps(SFRe + 24), _mm256_load_ps(SFRe + 56)));
	_mm256_store_ps(SFIm + 56, _mm256_sub_ps(_mm256_load_ps(SFIm + 24), _mm256_load_ps(SFIm + 56)));
	_mm256_store_ps(SFRe + 24, m256R);
	_mm256_store_ps(SFIm + 24, m256I);
	m256RF1 = _mm256_set_ps(0.941546, 0.956946, 0.970039, 0.980794, 0.989178, 0.995187, 0.998797, 1.000000);
	m256IF1 = _mm256_set_ps(-0.336883, -0.290265, -0.242948, -0.195044, -0.146720, -0.097994, -0.049031, -0.000000);
	m256RF2 = _mm256_set_ps(0.514121, 0.634402, 0.740952, 0.831492, 0.904002, 0.956946, 0.989178, 1.000000);
	m256IF2 = _mm256_set_ps(-0.857718, -0.773004, -0.671558, -0.555536, -0.427528, -0.290265, -0.146720, -0.000000);
	m256R = _mm256_load_ps(SFRe + 64);
	m256I = _mm256_load_ps(SFIm + 64);
	_mm256_store_ps(SFRe + 64, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF1), _mm256_mul_ps(m256I, m256IF1)));
	_mm256_store_ps(SFIm + 64, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF1), _mm256_mul_ps(m256I, m256RF1)));
	m256R = _mm256_load_ps(SFRe + 96);
	m256I = _mm256_load_ps(SFIm + 96);
	_mm256_store_ps(SFRe + 96, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF2), _mm256_mul_ps(m256I, m256IF2)));
	_mm256_store_ps(SFIm + 96, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF2), _mm256_mul_ps(m256I, m256RF2)));
	m256R = _mm256_load_ps(SFRe + 96);
	m256I = _mm256_load_ps(SFIm + 96);
	_mm256_store_ps(SFRe + 96, _mm256_sub_ps(_mm256_load_ps(SFIm + 64), m256I));
	_mm256_store_ps(SFIm + 96, _mm256_sub_ps(m256R, _mm256_load_ps(SFRe + 64)));
	_mm256_store_ps(SFRe + 64, _mm256_add_ps(_mm256_load_ps(SFRe + 64), m256R));
	_mm256_store_ps(SFIm + 64, _mm256_add_ps(_mm256_load_ps(SFIm + 64), m256I));
	m256RF1 = _mm256_set_ps(0.740952, 0.773019, 0.803224, 0.831492, 0.857731, 0.881929, 0.904002, 0.923896);
	m256IF1 = _mm256_set_ps(-0.671558, -0.634382, -0.595677, -0.555536, -0.514099, -0.471382, -0.427528, -0.382643);
	m256RF2 = _mm256_set_ps(-0.595697, -0.471404, -0.336907, -0.195069, -0.049056, 0.098019, 0.242972, 0.382712);
	m256IF2 = _mm256_set_ps(-0.803209, -0.881918, -0.941538, -0.980790, -0.998796, -0.995185, -0.970033, -0.923868);
	m256R = _mm256_load_ps(SFRe + 72);
	m256I = _mm256_load_ps(SFIm + 72);
	_mm256_store_ps(SFRe + 72, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF1), _mm256_mul_ps(m256I, m256IF1)));
	_mm256_store_ps(SFIm + 72, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF1), _mm256_mul_ps(m256I, m256RF1)));
	m256R = _mm256_load_ps(SFRe + 104);
	m256I = _mm256_load_ps(SFIm + 104);
	_mm256_store_ps(SFRe + 104, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF2), _mm256_mul_ps(m256I, m256IF2)));
	_mm256_store_ps(SFIm + 104, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF2), _mm256_mul_ps(m256I, m256RF2)));
	m256R = _mm256_load_ps(SFRe + 104);
	m256I = _mm256_load_ps(SFIm + 104);
	_mm256_store_ps(SFRe + 104, _mm256_sub_ps(_mm256_load_ps(SFIm + 72), m256I));
	_mm256_store_ps(SFIm + 104, _mm256_sub_ps(m256R, _mm256_load_ps(SFRe + 72)));
	_mm256_store_ps(SFRe + 72, _mm256_add_ps(_mm256_load_ps(SFRe + 72), m256R));
	_mm256_store_ps(SFIm + 72, _mm256_add_ps(_mm256_load_ps(SFIm + 72), m256I));
	m256RF1 = _mm256_set_ps(0.427550, 0.471404, 0.514121, 0.555599, 0.595697, 0.634402, 0.671577, 0.707133);
	m256IF1 = _mm256_set_ps(-0.903992, -0.881918, -0.857718, -0.831451, -0.803209, -0.773004, -0.740935, -0.707080);
	m256RF2 = _mm256_set_ps(-0.970039, -0.995187, -0.998797, -0.980785, -0.941546, -0.881929, -0.803224, -0.707098);
	m256IF2 = _mm256_set_ps(0.242948, 0.097994, -0.049031, -0.195093, -0.336883, -0.471382, -0.595677, -0.707116);
	m256R = _mm256_load_ps(SFRe + 80);
	m256I = _mm256_load_ps(SFIm + 80);
	_mm256_store_ps(SFRe + 80, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF1), _mm256_mul_ps(m256I, m256IF1)));
	_mm256_store_ps(SFIm + 80, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF1), _mm256_mul_ps(m256I, m256RF1)));
	m256R = _mm256_load_ps(SFRe + 112);
	m256I = _mm256_load_ps(SFIm + 112);
	_mm256_store_ps(SFRe + 112, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF2), _mm256_mul_ps(m256I, m256IF2)));
	_mm256_store_ps(SFIm + 112, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF2), _mm256_mul_ps(m256I, m256RF2)));
	m256R = _mm256_load_ps(SFRe + 112);
	m256I = _mm256_load_ps(SFIm + 112);
	_mm256_store_ps(SFRe + 112, _mm256_sub_ps(_mm256_load_ps(SFIm + 80), m256I));
	_mm256_store_ps(SFIm + 112, _mm256_sub_ps(m256R, _mm256_load_ps(SFRe + 80)));
	_mm256_store_ps(SFRe + 80, _mm256_add_ps(_mm256_load_ps(SFRe + 80), m256R));
	_mm256_store_ps(SFIm + 80, _mm256_add_ps(_mm256_load_ps(SFIm + 80), m256I));
	m256RF1 = _mm256_set_ps(0.049056, 0.098019, 0.146745, 0.195118, 0.242972, 0.290289, 0.336907, 0.382712);
	m256IF1 = _mm256_set_ps(-0.998796, -0.995185, -0.989174, -0.980780, -0.970033, -0.956939, -0.941538, -0.923868);
	m256RF2 = _mm256_set_ps(-0.146745, -0.290289, -0.427550, -0.555599, -0.671577, -0.773019, -0.857731, -0.923896);
	m256IF2 = _mm256_set_ps(0.989174, 0.956939, 0.903992, 0.831451, 0.740935, 0.634382, 0.514099, 0.382643);
	m256R = _mm256_load_ps(SFRe + 88);
	m256I = _mm256_load_ps(SFIm + 88);
	_mm256_store_ps(SFRe + 88, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF1), _mm256_mul_ps(m256I, m256IF1)));
	_mm256_store_ps(SFIm + 88, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF1), _mm256_mul_ps(m256I, m256RF1)));
	m256R = _mm256_load_ps(SFRe + 120);
	m256I = _mm256_load_ps(SFIm + 120);
	_mm256_store_ps(SFRe + 120, _mm256_sub_ps(_mm256_mul_ps(m256R, m256RF2), _mm256_mul_ps(m256I, m256IF2)));
	_mm256_store_ps(SFIm + 120, _mm256_add_ps(_mm256_mul_ps(m256R, m256IF2), _mm256_mul_ps(m256I, m256RF2)));
	m256R = _mm256_load_ps(SFRe + 120);
	m256I = _mm256_load_ps(SFIm + 120);
	_mm256_store_ps(SFRe + 120, _mm256_sub_ps(_mm256_load_ps(SFIm + 88), m256I));
	_mm256_store_ps(SFIm + 120, _mm256_sub_ps(m256R, _mm256_load_ps(SFRe + 88)));
	_mm256_store_ps(SFRe + 88, _mm256_add_ps(_mm256_load_ps(SFRe + 88), m256R));
	_mm256_store_ps(SFIm + 88, _mm256_add_ps(_mm256_load_ps(SFIm + 88), m256I));
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 0), _mm256_load_ps(SFRe + 64));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 0), _mm256_load_ps(SFIm + 64));
	_mm256_store_ps(SFRe + 64, _mm256_sub_ps(_mm256_load_ps(SFRe + 0), _mm256_load_ps(SFRe + 64)));
	_mm256_store_ps(SFIm + 64, _mm256_sub_ps(_mm256_load_ps(SFIm + 0), _mm256_load_ps(SFIm + 64)));
	_mm256_store_ps(SFRe + 0, m256R);
	_mm256_store_ps(SFIm + 0, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 8), _mm256_load_ps(SFRe + 72));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 8), _mm256_load_ps(SFIm + 72));
	_mm256_store_ps(SFRe + 72, _mm256_sub_ps(_mm256_load_ps(SFRe + 8), _mm256_load_ps(SFRe + 72)));
	_mm256_store_ps(SFIm + 72, _mm256_sub_ps(_mm256_load_ps(SFIm + 8), _mm256_load_ps(SFIm + 72)));
	_mm256_store_ps(SFRe + 8, m256R);
	_mm256_store_ps(SFIm + 8, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 16), _mm256_load_ps(SFRe + 80));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 16), _mm256_load_ps(SFIm + 80));
	_mm256_store_ps(SFRe + 80, _mm256_sub_ps(_mm256_load_ps(SFRe + 16), _mm256_load_ps(SFRe + 80)));
	_mm256_store_ps(SFIm + 80, _mm256_sub_ps(_mm256_load_ps(SFIm + 16), _mm256_load_ps(SFIm + 80)));
	_mm256_store_ps(SFRe + 16, m256R);
	_mm256_store_ps(SFIm + 16, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 24), _mm256_load_ps(SFRe + 88));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 24), _mm256_load_ps(SFIm + 88));
	_mm256_store_ps(SFRe + 88, _mm256_sub_ps(_mm256_load_ps(SFRe + 24), _mm256_load_ps(SFRe + 88)));
	_mm256_store_ps(SFIm + 88, _mm256_sub_ps(_mm256_load_ps(SFIm + 24), _mm256_load_ps(SFIm + 88)));
	_mm256_store_ps(SFRe + 24, m256R);
	_mm256_store_ps(SFIm + 24, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 32), _mm256_load_ps(SFRe + 96));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 32), _mm256_load_ps(SFIm + 96));
	_mm256_store_ps(SFRe + 96, _mm256_sub_ps(_mm256_load_ps(SFRe + 32), _mm256_load_ps(SFRe + 96)));
	_mm256_store_ps(SFIm + 96, _mm256_sub_ps(_mm256_load_ps(SFIm + 32), _mm256_load_ps(SFIm + 96)));
	_mm256_store_ps(SFRe + 32, m256R);
	_mm256_store_ps(SFIm + 32, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 40), _mm256_load_ps(SFRe + 104));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 40), _mm256_load_ps(SFIm + 104));
	_mm256_store_ps(SFRe + 104, _mm256_sub_ps(_mm256_load_ps(SFRe + 40), _mm256_load_ps(SFRe + 104)));
	_mm256_store_ps(SFIm + 104, _mm256_sub_ps(_mm256_load_ps(SFIm + 40), _mm256_load_ps(SFIm + 104)));
	_mm256_store_ps(SFRe + 40, m256R);
	_mm256_store_ps(SFIm + 40, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 48), _mm256_load_ps(SFRe + 112));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 48), _mm256_load_ps(SFIm + 112));
	_mm256_store_ps(SFRe + 112, _mm256_sub_ps(_mm256_load_ps(SFRe + 48), _mm256_load_ps(SFRe + 112)));
	_mm256_store_ps(SFIm + 112, _mm256_sub_ps(_mm256_load_ps(SFIm + 48), _mm256_load_ps(SFIm + 112)));
	_mm256_store_ps(SFRe + 48, m256R);
	_mm256_store_ps(SFIm + 48, m256I);
	m256R = _mm256_add_ps(_mm256_load_ps(SFRe + 56), _mm256_load_ps(SFRe + 120));
	m256I = _mm256_add_ps(_mm256_load_ps(SFIm + 56), _mm256_load_ps(SFIm + 120));
	_mm256_store_ps(SFRe + 120, _mm256_sub_ps(_mm256_load_ps(SFRe + 56), _mm256_load_ps(SFRe + 120)));
	_mm256_store_ps(SFIm + 120, _mm256_sub_ps(_mm256_load_ps(SFIm + 56), _mm256_load_ps(SFIm + 120)));
	_mm256_store_ps(SFRe + 56, m256R);
	_mm256_store_ps(SFIm + 56, m256I);
}
#endif